2011-07-12 19 views
1

最小値に達したことをユーザーに通知したいと考えています。値はボタンをクリックして設定します。彼がボタンをクリックし続けている場合、最小値に達すると、トーストが表示され、キューに入るので、すべてが消えるのに時間がかかります。クリックイベントでトーストを1つだけ表示しますか?

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(); 
       } 
     }); 

ボタンのクリックには1番目のトーストだけを表示させるにはどうすればよいですか?ユーザーがボタンをクリックし続けると、他のトーストは表示されません。

+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

、トーストを表示して、今すぐbutton.setEnabled(false);

をオーバーライドすることで、ボタンのonClickを無効にしますユーザーはボタンを2回以上クリックすることはできません。

+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

は魅力的に機能します! –

関連する問題