アプリケーションにこのコードがあります
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
Intent a = new Intent(this,a_stages.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);
return true;
}
return super.onKeyDown(keyCode, event);
}
ここで、たとえば別のページに移動するかどうかをユーザーに尋ねるアラート ダイアログを追加したいと思います。ユーザーが [はい] をクリックすると、特定のページが表示され、ユーザーがキャンセルをクリックすると、ダイアログ。キャンセル();。
編集 このコードを試しましたが、「Intent a = new Intent(this,a_stages.class);」という行でエラーが発生しました。「コンストラクター Intent(new DialogInterface.OnClickListener(){}, Class) は未定義です」
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(bq1.this);
// Setting Dialog Title
alertDialog.setTitle("Go back to home");
// Setting Dialog Message
alertDialog.setMessage("Are you sure you want to go back to home?");
// Setting Positive "Yes" Button
alertDialog.setPositiveButton("YES", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int which) {
Intent a = new Intent(this,a_stages.class);
a.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(a);
}
});
// Setting Negative "NO" Button
alertDialog.setNegativeButton("NO", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// Write your code here to invoke NO event
dialog.cancel();
}
});
// Showing Alert Message
alertDialog.show();
}
return super.onKeyDown(keyCode, event);
}