一、需求
在Android開發過程中,彈出dialog后無法捕捉back鍵,點擊back按鍵無響應。
二、解決方案
原因:彈出dialog后,activity失去焦點,dialog獲得當前焦點。
解決辦法:在dialog中可以通過調用setOnKeyListener()方法來為dialog增加按鍵事件的監聽。
private void createDialog() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(getString(R.string.acq_select_hint)); builder.setPositiveButton(getString(R.string.dialog_cancel), (dialog, which) -> onCancelClicked(dialog)); builder.setCancelable(false); builder.setOnKeyListener((dialog, keyCode, event) -> { if (keyCode == KeyEvent.KEYCODE_BACK) { onCancelClicked(dialog); } return false; }); builder.create().show();}private void onCancelClicked(DialogInterface dialog) { setResult(100); finish(); dialog.dismiss();}以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。
新聞熱點
疑難解答