【Android】戻るボタン(BACKボタン)でアラートダイアログを表示

Androidアプリで戻るボタン(BACKボタン)が押された時にアラートダイアログを表示したい。

キーイベントをonKeyDown/onKeyUpメソッドで取得する(Viewクラスのメソッドをオーバライド)
キーイベントが発動した時に、アラートダイアログを表示する。

onKeyDownはキーを押した瞬間、onKeyUpはキーを放した瞬間にイベントが発動します。

【Activity000.java】

public class Activity000 extends Activity {
	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
	}
	
	// BACKボタンが押された時の処理
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		if(keyCode==KeyEvent.KEYCODE_BACK){
			// アラートダイアログ
			showDialog(0);
			return true;
		}
		return false;
	}
	
	// アラートダイアログ
	@Override
	public Dialog onCreateDialog(int id) {
		switch (id) {
	 
		case 0:
			//ダイアログの作成(AlertDialog.Builder)
			return new AlertDialog.Builder(Activity000.this)
			.setMessage("「アプリ」を終了しますか?")
			.setCancelable(false)
			// 「終了する」が押された時の処理
			.setPositiveButton("終了する", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int id) {
					// アクティビティ消去
					Activity000.this.finish();
				}
			})
			// 「終了しない」が押された時の処理
			.setNegativeButton("終了しない", new DialogInterface.OnClickListener() {
				public void onClick(DialogInterface dialog, int id) {

				}
			})
			.create();
		}
		return null;
	}
}

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>