EditText在AlertDialog v7中不起作用

时间:2015-10-22 14:20:51

标签: android android-edittext alertdialog android-alertdialog

我使用alertDialog v7来创建自定义对话框。 在我的自定义视图中,我有editText和inputType" phone | numberPassword"。 但在这种情况下,当我尝试键入一些文本时 - 它不起作用,意味着editText不会显示任何更改,任何新符号......

这是我对alertDialog的自定义视图:

<LinearLayout
    android:id="@+id/ll_login_regLayout"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:visibility="visible"
    android:paddingRight="@dimen/dialog_padding"
    android:paddingLeft="@dimen/dialog_padding"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <EditText
            android:id="@+id/et_p1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:inputType="phone|numberPassword"
            />
</LinearLayout>

这里是片段内部代码的示例:

private void showSetPassDialog(){
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
    View dialogView = LayoutInflater.from(getActivity()).inflate(R.layout.dialog_register_pass, null);

    builder.setView(dialogView);
    builder.setPositiveButton(getString(R.string.text_dialogpsw_btn_ok_password),
            new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    if (!chb.isChecked()) {
                        String mess = getString(R.string.error_check_dogovor);
                        SU_Tools.showToast(getActivity(), mess);
                        showSetPassDialog();
                    } else {
                        mMainLayout.setVisibility(View.VISIBLE);
                    }
                }
            });
    builder.show();
}

1 个答案:

答案 0 :(得分:0)

您需要分解设置对话框的方式。试试这个:

AlertDialog alert = new AlertDialog.Builder(this)
    .setView(dialogView)
    .setPositiveButton(getString(R.string.text_dialogpsw_btn_ok_password), null)
    .create();

alert.setOnShowListener(new DialogInterface.OnShowListener() {
    @Override
   public void onSow(DialogInterface dialogInterface) {
       final Button button = alert.getButton(AlertDialog.BUTTON_POSITIVE);
       button.setOnClickListener(your code here);
   }
});

alert.show();