private void showPasswordDialog(String message) { View view = View.inflate(this, R.layout.dialog_input_password, null); final AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setView(view); final AlertDialog dialog = builder.create(); //重点 TextView tvMessage = view.findViewById(R.id.tv_message); tvMessage.setText(message); EditText etPassword = view.findViewById(R.id.et_Inputpassword); view.findViewById(R.id.btn_ok).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String SharePrePassword = SharedPreferencesUtil.getData(ScreenSaversActivity.this, Consts.SCREEN_SAVERS_PASSWORD, ""); //EditText et = viewDialogInputPassword.findViewById(R.id.et_Inputpassword); if (TextUtils.equals(SharePrePassword, etPassword.getText().toString())) { dialog.dismiss(); ScreenSaversActivity.this.finish(); // inputPasswordDialog.dismiss(); EventBus.getDefault().post(new MessageEvent(EventConst.SCREEN_SAVERS_EVENT, "密码正确")); } else { tvMessage.setTextColor(Color.RED); tvMessage.setText(MyApplication.getContext().getResources().getString(R.string.txt_PasswordIncorrect)); // tv_Prompt_message.setText("你输入的密码不正确,请重新输入"); // dialog.cancel(); } } }); view.findViewById(R.id.btn_cancel).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view1) { dialog.dismiss(); Log.d(TAG, "onClick: dialog cancel"); } }); dialog.show(); }
自定义xml布局
<?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#FFFFFF" > <androidx.constraintlayout.widget.Guideline android:id="@+id/top_50" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_begin="50dp" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/left_50" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_begin="50dp" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/right_50" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" app:layout_constraintGuide_end="50dp" /> <androidx.constraintlayout.widget.Guideline android:id="@+id/bottom_50" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" app:layout_constraintGuide_end="50dp" /> <TextView android:id="@+id/tv_message" android:layout_width="match_parent" android:layout_height="40dp" android:layout_gravity="center" android:layout_marginTop="8dp" android:paddingLeft="40dp" android:text="@string/screen_saver_dialog_title" android:textColor="@color/black" android:textSize="24sp" app:layout_constraintLeft_toRightOf="@id/left_50" app:layout_constraintRight_toLeftOf="@id/right_50" app:layout_constraintTop_toTopOf="@+id/top_50"> </TextView> <EditText android:id="@+id/et_Inputpassword" android:layout_width="304dp" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginTop="16dp" android:hint="@string/screen_saver_dialog_msg" android:inputType="textPassword" android:textColor="@color/black" android:textColorHint="@color/red" app:layout_constraintLeft_toRightOf="@id/left_50" app:layout_constraintRight_toLeftOf="@id/right_50" app:layout_constraintTop_toBottomOf="@id/tv_message"> </EditText> <Button android:id="@+id/btn_cancel" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="196dp" android:text="@string/lbl_Cancel" android:visibility="visible" android:background="@drawable/button" app:layout_constraintBottom_toTopOf="@+id/bottom_50" app:layout_constraintLeft_toRightOf="@id/left_50" app:layout_constraintTop_toBottomOf="@id/et_Inputpassword" app:layout_constraintVertical_bias="0.072"> </Button> <Button android:id="@+id/btn_ok" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/lbl_OK" android:visibility="visible" android:background="@drawable/button" app:layout_constraintBottom_toTopOf="@+id/bottom_50" app:layout_constraintEnd_toStartOf="@+id/right_50" app:layout_constraintHorizontal_bias="0.531" app:layout_constraintStart_toEndOf="@+id/btn_cancel" app:layout_constraintTop_toBottomOf="@+id/et_Inputpassword" app:layout_constraintVertical_bias="0.072"> </Button> </androidx.constraintlayout.widget.ConstraintLayout>