2011-05-05 37 views
4


在我的android應用程序中,我想從AlertDialog中的EditText小部件獲取用戶輸入。如果用戶沒有輸入法律文本並點擊確認按鈕,AlertDialog不應該關閉,應該做出一些迴應,我應該怎麼做?
這裏是我當前的代碼:Android:AlertDialog中的按鈕

​​

的感謝!

回答

3

要做到這一點,把你的按鈕在你的線性佈局或在佈局和不使用由AlertDialog提供的默認按鈕。

XML文件中的設置按鈕後,您將使用按鈕的對象:

Button b1 = editNickView.findViewById(<ID of button1>); 

,然後創建此按鈕的監聽器。現在,在監聽器,如果發現用戶輸入然後輸入正確撥打:

editNick.dismiss(); 

關閉對話框,否則,對話框將是用戶可見。

4

AlertDialog總是在它的一個按鈕被點擊時關閉。如果你不希望發生這種情況,不要調用setButton,只需將你的按鈕放在你的自定義佈局xml中。檢查前提條件,並在需要時致電editNick.dismiss()關閉對話框。

一些片段可能會幫助:

View editNickView = li.inflate(R.layout.dialog_edit_nick, null); 
.... 
final AlertDialog editNick = editNickBuilder.create(); 
Button button = (Button) editNickView.findViewById(R.id.your_button_id); 
button.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
.... 
      if(shouldClose) { 
      editNick.dismiss(); 
      } 
      else { 
//Make a toast or something here. 
      } 
     } 
    });