標籤:
開發過程中,有時候會有這樣的需求:
點擊某個按鈕之後顯示一個對話方塊,對話方塊上面有一個輸入框,並且有“確認”和“取消”兩個按鈕。當使用者點擊確認按鈕時,需要對輸入框的內容進行判斷。如果內容為空白則不關閉對話方塊,並toast提示。
使用AlertDialog.Builder建立對話方塊時,可以使用builder.setNegativeButton和builder.setPositiveButton兩個方法設定取消按鈕和確認按鈕的點擊事件。然而問題在於,只要使用者點擊了確認按鈕或者取消按鈕,系統就會自動將對話方塊關閉。
解決此問題的方法是:
(1)使用builder.setPositiveButton設定確認按鈕的文字,但是不添加監聽。即:
builder.setPositiveButton(R.string.main_ok, null);
(2)得到AlertDialog對象:
AlertDialog alertDialog = builder.create(); alertDialog.show();
(3)擷取到對話方塊上的確認按鈕,然後對該按鈕添加普通的View.OnClickListener。在使用者輸入正確的時候,手動調用alertDialog.dismiss()關閉對話方塊。
alertDialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String cardNum = cardNumET.getText().toString().trim(); if (cardNum.length() == 0) { Utility.showToast(mActivity, "請輸入編號"); return; } //發送 sendProfile(cardNum); alertDialog.dismiss(); }});
Android實現點擊AlertDialog上按鈕時不關閉對話方塊