本文執行個體講述了Android實現點擊AlertDialog上按鈕時不關閉對話方塊的方法。分享給大家供大家參考。具體如下:
開發過程中,有時候會有這樣的需求:
點擊某個按鈕之後顯示一個對話方塊,對話方塊上面有一個輸入框,並且有“確認”和“取消”兩個按鈕。當使用者點擊確認按鈕時,需要對輸入框的內容進行判斷。如果內容為空白則不關閉對話方塊,並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程式設計有所協助。