一、需求
在Android開發(fā)過程中,彈出dialog后無法捕捉back鍵,點(diǎn)擊back按鍵無響應(yīng)。
二、解決方案
原因:彈出dialog后,activity失去焦點(diǎn),dialog獲得當(dāng)前焦點(diǎn)。
解決辦法:在dialog中可以通過調(diào)用setOnKeyListener()方法來為dialog增加按鍵事件的監(jiān)聽。
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();}以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。
新聞熱點(diǎn)
疑難解答
圖片精選