From 0f092fad544b9f3498e4af5c315249524f67690c Mon Sep 17 00:00:00 2001 From: SiberiaDante <994537867@qq.com> Date: Thu, 16 Nov 2017 10:09:50 +0800 Subject: [PATCH] v1.0.2 --- README.md | 4 +- .../customdialog/MainActivity.java | 73 +++--- app/src/main/res/layout/activity_main.xml | 6 +- app/src/main/res/layout/dialog_edit.xml | 6 +- app/src/main/res/layout/dialog_sd_custom.xml | 98 ++++++++ app/src/main/res/mipmap-xhdpi/icon_tips.png | Bin 0 -> 1026 bytes app/src/main/res/values/colors.xml | 1 + build.gradle | 2 +- customdialoglib/build.gradle | 7 +- .../customdialoglib/CustomDialog.java | 115 +++++----- .../customdialoglib/SDCustomDialog.java | 213 ++++++++++++++++++ .../src/main/res/drawable/bac_white_one.xml | 4 +- .../main/res/drawable/edit_cursor_line.xml | 2 +- .../main/res/layout/dialog_ensure_layout.xml | 6 +- .../src/main/res/values/colors.xml | 10 +- images/dialog.gif | Bin 1197476 -> 2216599 bytes 16 files changed, 433 insertions(+), 114 deletions(-) create mode 100644 app/src/main/res/layout/dialog_sd_custom.xml create mode 100644 app/src/main/res/mipmap-xhdpi/icon_tips.png create mode 100644 customdialoglib/src/main/java/com/siberiadante/customdialoglib/SDCustomDialog.java diff --git a/README.md b/README.md index 1e13996..bfd0755 100644 --- a/README.md +++ b/README.md @@ -185,8 +185,8 @@ Error:Execution failed for task ':app:processDebugResources'. > com.android.ide. ``` 解决方法:COMPILE_SDK_VERSION>=26 ### 版本更新说明: -* v1.0.2(未发布): - * CustomDialog 增加支持添加一个EditText +* v1.0.2: + * CustomDialog 增加支持动态设置View属性 [CustomDialog]:https://github.com/SiberiaDante/CustomDialog/blob/0e3849999b7ed3398255b1312fa28d7d38b23306/customdialoglib/src/main/java/com/siberiadante/customdialoglib/CustomDialog.java [EditDialog]:https://github.com/SiberiaDante/CustomDialog/blob/0e3849999b7ed3398255b1312fa28d7d38b23306/customdialoglib/src/main/java/com/siberiadante/customdialoglib/EditDialog.java diff --git a/app/src/main/java/com/siberiadante/customdialog/MainActivity.java b/app/src/main/java/com/siberiadante/customdialog/MainActivity.java index 949c647..9a20f60 100644 --- a/app/src/main/java/com/siberiadante/customdialog/MainActivity.java +++ b/app/src/main/java/com/siberiadante/customdialog/MainActivity.java @@ -1,9 +1,11 @@ package com.siberiadante.customdialog; +import android.support.v4.content.ContextCompat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.view.View; +import android.widget.Button; import android.widget.EditText; import android.widget.Toast; @@ -12,6 +14,8 @@ import com.siberiadante.customdialoglib.EditDialog; import com.siberiadante.customdialoglib.EnsureDialog; +import java.util.List; + public class MainActivity extends AppCompatActivity implements View.OnClickListener { private EnsureDialog ensureDialog; @@ -30,7 +34,7 @@ private void initView() { findViewById(R.id.btn_bottom_popup_widow).setOnClickListener(this); findViewById(R.id.btn_edit_dialog).setOnClickListener(this); findViewById(R.id.btn_custom_dialog).setOnClickListener(this); - findViewById(R.id.btn_custom_edit_dialog).setOnClickListener(this); + findViewById(R.id.btn_sd_custom_dialog).setOnClickListener(this); } @Override @@ -57,9 +61,8 @@ public void onClick(View view) { case R.id.btn_custom_dialog: showCustomDialog(); break; - case R.id.btn_custom_edit_dialog: - - showCustomEditDialog(); + case R.id.btn_sd_custom_dialog: + showSDCustomEditDialog(); break; } } @@ -120,7 +123,7 @@ public void onClick(int which) { private void showEnsureDialogOne() { ensureDialog = new EnsureDialog(this).builder() .setGravity(Gravity.CENTER)//默认居中,可以不设置 - .setTitle("这里是一个标题", getResources().getColor(R.color.black))//可以不设置标题颜色,默认系统颜色 + .setTitle("这里是一个标题", getResources().getColor(R.color.sd_color_black))//可以不设置标题颜色,默认系统颜色 .setCancelable(false) .setNegativeButton("取消", new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @Override @@ -128,7 +131,7 @@ public void onClick(View view) { } }) - .setPositiveButton("确认", getResources().getColor(R.color.red), new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 + .setPositiveButton("确认", getResources().getColor(R.color.sd_color_red), new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @Override public void onClick(View view) { ensureDialog.dismiss(); @@ -142,7 +145,7 @@ public void onClick(View view) { private void showEnsureDialogTwo() { ensureDialog = new EnsureDialog(this).builder() .setGravity(Gravity.CENTER)//默认居中,可以不设置 - .setTitle("这里是一个标题", getResources().getColor(R.color.black))//可以不设置标题颜色,默认系统颜色 + .setTitle("这里是一个标题", getResources().getColor(R.color.sd_color_black))//可以不设置标题颜色,默认系统颜色 .setSubTitle("这是一个副标题") .setCancelable(false) .setNegativeButton("取消", new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @@ -151,7 +154,7 @@ public void onClick(View view) { } }) - .setPositiveButton("确认", getResources().getColor(R.color.red), new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 + .setPositiveButton("确认", getResources().getColor(R.color.sd_color_red), new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @Override public void onClick(View view) { ensureDialog.dismiss(); @@ -165,7 +168,7 @@ public void onClick(View view) { private void showEnsureDialogThree() { ensureDialog = new EnsureDialog(this).builder() .setGravity(Gravity.CENTER)//默认居中,可以不设置 - .setTitle("这里是一个标题", getResources().getColor(R.color.black))//可以不设置标题颜色,默认系统颜色 + .setTitle("这里是一个标题", getResources().getColor(R.color.sd_color_black))//可以不设置标题颜色,默认系统颜色 .setIncon(R.mipmap.tip_icon)//不设置图标,默认没有图标 .setCancelable(false) .setNegativeButton("取消", new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @@ -174,7 +177,7 @@ public void onClick(View view) { } }) - .setPositiveButton("确认", getResources().getColor(R.color.red), new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 + .setPositiveButton("确认", getResources().getColor(R.color.sd_color_red), new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @Override public void onClick(View view) { ensureDialog.dismiss(); @@ -188,7 +191,7 @@ public void onClick(View view) { private void showEnsureDialogFour() { ensureDialog = new EnsureDialog(this).builder() .setGravity(Gravity.CENTER)//默认居中,可以不设置 - .setTitle("这里是一个标题", R.color.black)//可以不设置标题颜色,默认系统颜色 + .setTitle("这里是一个标题", R.color.sd_color_black)//可以不设置标题颜色,默认系统颜色 .setCancelable(false) .setCenterButton("取消", new View.OnClickListener() {//可以选择设置颜色和不设置颜色两个方法 @Override @@ -201,41 +204,43 @@ public void onClick(View view) { } private void showCustomDialog() { - final CustomDialog customDialog = new CustomDialog(this, R.layout.dialog_layout, new int[]{R.id.dialog_sure}, true, Gravity.CENTER); - customDialog.setOnDialogItemClickListener(new CustomDialog.OnCustomDialogItemClickListener() { - @Override - public void OnCustomDialogItemClick(CustomDialog dialog, View view) { -// customDialog.dismiss(); - Toast.makeText(MainActivity.this, "确定按钮被点击了", Toast.LENGTH_LONG).show(); - } - }); + final CustomDialog customDialog = new CustomDialog(this, R.layout.dialog_sd_custom); customDialog.show(); - } - private void showCustomEditDialog() { + /** + * 这种方式使用中的缺陷就是需要资源id需要一一对应 + */ + private void showSDCustomEditDialog() { final CustomDialog customDialog = new CustomDialog(this, - R.layout.dialog_edit, - new int[]{R.id.btn_cancel,R.id.btn_sure}, - R.id.edt_content, + R.layout.dialog_sd_custom, + new int[]{R.id.btn_cancel, R.id.btn_sure, R.id.edt_content, R.id.edt_sub_content}, 0, - true, + false, + false, Gravity.CENTER); customDialog.setOnDialogItemClickListener(new CustomDialog.OnCustomDialogItemClickListener() { @Override public void OnCustomDialogItemClick(CustomDialog dialog, View view) { - switch (view.getId()) { - case R.id.btn_cancel: - break; - case R.id.btn_sure: - - break; - } + switch (view.getId()) { + case R.id.btn_cancel: + customDialog.dismiss(); + break; + case R.id.btn_sure: + + break; + } } }); + customDialog.show(); - final EditText editText = customDialog.getEditText(); - editText.setHint("这是一个提示"); + final List viewList = customDialog.getViews(); + final Button btnSure = (Button) viewList.get(1); + btnSure.setTextColor(ContextCompat.getColor(this, R.color.colorGray)); + final EditText edtContent = (EditText) viewList.get(2); + final EditText edtSubContent = (EditText) viewList.get(3); + edtContent.setHint("这是一个主内容"); + edtSubContent.setHint("这是一个副内容"); } @Override diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 60a84d1..63a12f7 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -78,10 +78,12 @@ android:id="@+id/btn_custom_dialog" style="@style/MainButton" android:text="自定义布局的Dialog" /> + +