私のアプリケーションでは、パスワードを受け入れるダイアログ ボックスを作成しました。ダイアログには、メッセージ、EditText、および 2 つのボタン (+ve と -ve) が表示されます。ユーザーが +ve ボタンをクリックすると、EditText に入力されたパスワードが有効かどうかを確認しています。有効でない場合は、ユーザーにパスワードの再入力を促すダイアログ ボックスのメッセージを変更する必要があります。
パスワードが有効な場合、期待どおりに機能しますが、無効であり、メッセージを更新する代わりに、単にダイアログを閉じます。
onPrepareDialog()をオーバーライドして解決しようとしましたが、うまくいきません。
これが私のコードです:
protected Dialog onCreateDialog(int viewId){
AlertDialog dialog = null;
final AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Enter Password To Continue");
final EditText passwordField = new EditText(getApplicationContext());
builder.setView(passwordField);
builder.setPositiveButton("SUBMIT", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if(passwordField.getText().toString().equals("password")){
Intent intent = new Intent(MyFirstActivity.this, NextActivity.class);
finish();
startActivity(intent);
}else{
//Here I need to update the message
builder.setMessage("SORRY!!! Wrong Password Entered.\n Re-Enter Correct Password Again ");
}
}
});
builder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
dialog = builder.create();
}
return dialog;
}