2011-07-12 20 views
1

我想通知用戶他已達到最小值。該值通過按鈕單擊設置。如果他繼續點擊一個按鈕,當達到最小值時,Toasts開始出現並排隊,因此所有消息都需要很長時間。在點擊事件中只顯示一個Toast?

btn.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View view) { 
      if (value < MIN_VALUE) { 
        Toast.makeText(MyActivity.this, "You have reached the minimum value", 
          Toast.LENGTH_SHORT).show(); 
       } 
     }); 

如何才能讓第一道敬酒出現在按鈕上?這樣,如果用戶不斷點擊按鈕,則不會出現其他的吐司。

+0

看看MByD的代碼......這就是程序員所謂的「邏輯」。 – Cristian

+0

我有這個布爾值,但是我把它放在錯誤的地方。 – sandalone

回答

5

添加一個標誌,指示按鈕是否已經按下或未:

btn.setOnClickListener(new View.OnClickListener() { 
     boolean pressed = false; 
     public void onClick(View view) { 
     if ((value < MIN_VALUE) && (!pressed)) { 
       Toast.makeText(MyActivity.this, "You have reached the minimum value", 
         Toast.LENGTH_SHORT).show(); 
       pressed = true; 
      } 
    }); 
3

一旦他達到他的極限,顯示敬酒,並通過overridding button.setEnabled(false);

所以,現在禁用按鈕的onClick用戶將不能多次點擊該按鈕。

+0

+1其實,這甚至是一個更好的主意(對於大多數情況) – MByD

5
public static void showToast(Context cont, String message) { 
    if (mToast == null) { 
     mToast = Toast.makeText(cont, message, Toast.LENGTH_SHORT); 
    } 
    if (!mToast.getView().isShown()) { 
     mToast.setText(message); 
     mToast.show(); 
    } 
} 
+0

作品就像一個魅力! –