Activity Groupで戻るキーを押してダイアログボックスを終了するかどうかを尋ねる
1850 ワード
詳細
今日androidプログラムを書く時に1つの問題に出会って、1つのActivity GroupはN個のActivityを含んで、戻るボタンをクリックする時プログラムを退出するかどうかを尋ねて、プログラムを始めるのはこのように書きます:
結局、戻るキーを押すと、プログラムは終了します.
後で資料を探したら、onKeyDownイベントをキャプチャするように変更する必要があります.
次に、サブactivityに次のコードを追加する必要があります.
何か悪いところがありましたら、よろしくお願いします.
今日androidプログラムを書く時に1つの問題に出会って、1つのActivity GroupはN個のActivityを含んで、戻るボタンをクリックする時プログラムを退出するかどうかを尋ねて、プログラムを始めるのはこのように書きます:
public class MainActivity extends ActivityGroup {
// ……
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle(" ");
builder.setMessage(" ?");
builder.setPositiveButton(R.string.confirm, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
});
builder.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.create().show();
return true;
}else{
return super.onKeyUp(keyCode, event);
}
}
}
結局、戻るキーを押すと、プログラムは終了します.
後で資料を探したら、onKeyDownイベントをキャプチャするように変更する必要があります.
次に、サブactivityに次のコードを追加する必要があります.
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(keyCode == KeyEvent.KEYCODE_BACK){
return getParent().onKeyDown(keyCode, event);
}else{
return super.onKeyDown(keyCode, event);
}
}
何か悪いところがありましたら、よろしくお願いします.