diff --git a/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java b/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java index 52b1a73..a692ef6 100644 --- a/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java +++ b/ColorDialog/src/main/java/cn/refactor/lib/colordialog/PromptDialog.java @@ -11,11 +11,13 @@ import android.graphics.drawable.ShapeDrawable; import android.graphics.drawable.shapes.RoundRectShape; import android.os.Bundle; +import android.text.InputType; import android.view.View; import android.view.ViewGroup; import android.view.WindowManager; import android.view.animation.Animation; import android.view.animation.AnimationSet; +import android.widget.EditText; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; @@ -37,16 +39,19 @@ public class PromptDialog extends Dialog { public static final int DIALOG_TYPE_WRONG = 2; public static final int DIALOG_TYPE_SUCCESS = 3; public static final int DIALOG_TYPE_WARNING = 4; + public static final int DIALOG_TYPE_EDIT = 5; public static final int DIALOG_TYPE_DEFAULT = DIALOG_TYPE_INFO; private AnimationSet mAnimIn, mAnimOut; private View mDialogView; private TextView mTitleTv, mContentTv, mPositiveBtn; + + private EditText editText; private OnPositiveListener mOnPositiveListener; private int mDialogType; - private boolean mIsShowAnim; - private CharSequence mTitle, mContent, mBtnText; + private boolean mIsShowAnim, mIsEditTextSecure; + private CharSequence mTitle, mContent, mBtnText, mEditTextContent, mEditTextHint; public PromptDialog(Context context) { this(context, 0); @@ -82,6 +87,7 @@ private void initView() { mTitleTv = (TextView) contentView.findViewById(R.id.tvTitle); mContentTv = (TextView) contentView.findViewById(R.id.tvContent); mPositiveBtn = (TextView) contentView.findViewById(R.id.btnPositive); + editText = (EditText) contentView.findViewById(R.id.editText); View llBtnGroup = findViewById(R.id.llBtnGroup); ImageView logoIv = (ImageView) contentView.findViewById(R.id.logoIv); @@ -109,6 +115,26 @@ private void initView() { mTitleTv.setText(mTitle); mContentTv.setText(mContent); mPositiveBtn.setText(mBtnText); + + configureEditText(); + } + + private void configureEditText() + { + if(mDialogType == DIALOG_TYPE_EDIT) + { + editText.setVisibility(View.VISIBLE); + editText.setHint(mEditTextHint); + editText.setText(mEditTextContent); + if(mIsEditTextSecure) + { + editText.setInputType(InputType.TYPE_TEXT_VARIATION_PASSWORD | InputType.TYPE_CLASS_TEXT); + } + } + else + { + editText.setVisibility(View.GONE); + } } private void resizeDialog() { @@ -161,6 +187,9 @@ private int getLogoResId(int mDialogType) { if (DIALOG_TYPE_WARNING == mDialogType) { return R.mipmap.icon_warning; } + if(DIALOG_TYPE_EDIT == mDialogType) { + return R.mipmap.icon_edit; + } return R.mipmap.ic_info; } @@ -183,6 +212,10 @@ private int getColorResId(int mDialogType) { if (DIALOG_TYPE_WARNING == mDialogType) { return R.color.color_type_warning; } + if(DIALOG_TYPE_EDIT == mDialogType) { + return R.color.color_type_edit; + } + return R.color.color_type_info; } @@ -205,6 +238,9 @@ private int getSelBtn(int mDialogType) { if (DIALOG_TYPE_WARNING == mDialogType) { return R.drawable.sel_btn_warning; } + if(DIALOG_TYPE_EDIT == mDialogType) { + return R.drawable.sel_btn_edit; + } return R.drawable.sel_btn; } @@ -375,4 +411,49 @@ public interface OnPositiveListener { void onClick(PromptDialog dialog); } + public EditText getEditText() + { + return editText; + } + + public PromptDialog setEditTextContent(CharSequence editTextContent) + { + mEditTextContent = editTextContent; + return this; + } + + public PromptDialog setEditTextContent(int resId) + { + mEditTextContent = getContext().getString(resId); + return this; + } + + public CharSequence getEditTextContent() + { + return mEditTextContent; + } + + public CharSequence getEditTextHint() + { + return mEditTextHint; + } + + public PromptDialog setEditTextHint(CharSequence editTextHint) + { + mEditTextHint = editTextHint; + return this; + } + + public PromptDialog setEditTextHint(int resId) + { + mEditTextHint = getContext().getString(resId); + return this; + } + + public PromptDialog setIsEditTextContentSecure(Boolean isSecure) + { + mIsEditTextSecure = isSecure; + return this; + } + } diff --git a/ColorDialog/src/main/res/drawable/black_border_background.xml b/ColorDialog/src/main/res/drawable/black_border_background.xml new file mode 100644 index 0000000..0473999 --- /dev/null +++ b/ColorDialog/src/main/res/drawable/black_border_background.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ColorDialog/src/main/res/drawable/sel_btn_edit.xml b/ColorDialog/src/main/res/drawable/sel_btn_edit.xml new file mode 100644 index 0000000..dcc0255 --- /dev/null +++ b/ColorDialog/src/main/res/drawable/sel_btn_edit.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ColorDialog/src/main/res/layout/layout_promptdialog.xml b/ColorDialog/src/main/res/layout/layout_promptdialog.xml index 784c661..ad5043c 100755 --- a/ColorDialog/src/main/res/layout/layout_promptdialog.xml +++ b/ColorDialog/src/main/res/layout/layout_promptdialog.xml @@ -64,7 +64,23 @@ android:paddingRight="10dp" android:paddingTop="5dp" android:textColor="@color/color_dialog_content_prompt" - android:visibility="visible" /> + android:visibility="visible" + /> + + diff --git a/ColorDialog/src/main/res/mipmap/icon_edit.png b/ColorDialog/src/main/res/mipmap/icon_edit.png new file mode 100644 index 0000000..7ebce45 Binary files /dev/null and b/ColorDialog/src/main/res/mipmap/icon_edit.png differ diff --git a/ColorDialog/src/main/res/values/colors.xml b/ColorDialog/src/main/res/values/colors.xml index 4dda489..8c1929f 100644 --- a/ColorDialog/src/main/res/values/colors.xml +++ b/ColorDialog/src/main/res/values/colors.xml @@ -9,4 +9,5 @@ #ed7861 #e8bd4b #90b06e + #222da1 diff --git a/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java b/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java index 38b1e9d..817b57f 100644 --- a/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java +++ b/sample/src/main/java/cn/refactor/sample/colordialog/MainActivity.java @@ -25,6 +25,24 @@ public void showPromptDialog(View view) { showPromptDlg(); } + public void showPromptDialogWithEditText(View view) + { + new PromptDialog(this) + .setDialogType(PromptDialog.DIALOG_TYPE_EDIT) + .setAnimationEnable(true) + .setTitleText("EDIT") + .setContentText("Sub Title") + .setEditTextHint("Enter Text") + .setPositiveListener(getString(R.string.edit), new PromptDialog.OnPositiveListener() { + @Override + public void onClick(PromptDialog dialog) { + dialog.dismiss(); + Toast.makeText(MainActivity.this,dialog.getEditText().getText().toString(),Toast.LENGTH_LONG).show(); + } + }).show(); + } + + private void showPromptDlg() { new PromptDialog(this) .setDialogType(PromptDialog.DIALOG_TYPE_SUCCESS) diff --git a/sample/src/main/res/layout/activity_main.xml b/sample/src/main/res/layout/activity_main.xml index 7f10e94..e6c9455 100644 --- a/sample/src/main/res/layout/activity_main.xml +++ b/sample/src/main/res/layout/activity_main.xml @@ -11,6 +11,12 @@ android:layout_height="wrap_content" android:text="@string/prompt_dialog"/> +