Android實現點擊AlertDialog上按鈕時不關閉對話方塊

來源:互聯網
上載者:User

標籤:

開發過程中,有時候會有這樣的需求:

點擊某個按鈕之後顯示一個對話方塊,對話方塊上面有一個輸入框,並且有“確認”和“取消”兩個按鈕。當使用者點擊確認按鈕時,需要對輸入框的內容進行判斷。如果內容為空白則不關閉對話方塊,並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上按鈕時不關閉對話方塊

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.