Android 點選AlertDialog上的確定和取消按鈕,使對話方塊不消失
阿新 • • 發佈:2019-01-22
Android中的AlertDialog彈出框在被點選時, 無論點選哪個按鈕都會關閉視窗。
但是有時候我們不需要它關閉,例如輸入使用者名稱和密碼,輸錯了,提示重新輸入。
那麼怎麼做到點選確定或者取消按鈕不關閉對話方塊呢?
直接上程式碼
new AlertDialog.Builder(this) .setTitle(R.string.SBCfgPasswordTitle) .setView(passwdEditText) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { canCloseDialog(dialogInterface, false);//不關閉對話方塊 } }) .setNeutralButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { //To change body of implemented methods use File | Settings | File Templates. canCloseDialog(dialogInterface, true);//關閉對話方塊 } }) .show(); // 關鍵部分在這裡 private void canCloseDialog(DialogInterface dialogInterface, boolean close) { try { Field field = dialogInterface.getClass().getSuperclass().getDeclaredField("mShowing"); field.setAccessible(true); field.set(dialogInterface, close); } catch (Exception e) { e.printStackTrace(); } }