AlertDialog點擊按鈕后對話框不消失的處理方法

-------轉(zhuǎn)載自網(wǎng)絡(luò)-------

我們在使用AlertDialog時,無論點擊“確定”(PositiveButton)還是“取消”(NegativeButton),對話框都會消失,這其實是不合理的。如果遇到這種情況:AlertDialog里面有一個文本框,要求用戶必須輸入內(nèi)容,但如果用戶沒有輸入就點擊了確定,這時對話框是不應(yīng)該消失的,而是應(yīng)該保留該對話框并提示用戶必須輸入文字。

解決辦法:

final AlertDialog dialog = new AlertDialog.Builder(mContext).setView(view).setPositiveButton("確定", null)  
                            .setNegativeButton("取消", new DialogInterface.OnClickListener() {  
                                @Override  
                                public void onClick(DialogInterface dialog, int which) {  
                                    dialog.dismiss();  
                                }  
                            }).create();  
//這里必須要先調(diào)show()方法,后面的getButton才有效  
dialog.show();  
  
dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(new View.OnClickListener() {  
    @Override  
    public void onClick(View v) {  
        if (TextUtils.isEmpty(et.getText())) {  
            showToast("文字不能為空");  
            return;  
        }  
        dialog.dismiss();  
    }  
});

也就是說,在創(chuàng)建AlertDialog時setPositiveButton方法的OnClickListener參數(shù)需傳入null,然后讓dialog show出來以后,再通過getButton(AlertDialog.BUTTON_POSITIVE)方法重新得到確定按鈕,重設(shè)點擊事件,這時如果不手動去調(diào)dialog.dismiss(),對話框就不會消失了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容