2012-04-23 14 views
3

私の活動にはボタンがあります。 Show Toastをクリックするとしかし、もう一度クリックすると、再びトーストショーが開きます。ですから、何度もクリックすると、このトーストは長い間表示されます。最初に消滅したら、次は表示されています。ボタンをもう一度クリックすると、最初にトーストが隠れるようになります。トーストと期間

+1

チェック[この](http://stackoverflow.com/questions/5295765/toast-issue-in-android/5295800#5295800) – silwar

+0

? – edi233

+0

あなたがショートーストをもう一度呼び出してからタイマーをチェックしている場合、トーストに与えられた時間と同じである画面開始タイマーのトーストを表示すると、それでもまだ動いている場合は、トーストが画面に表示されます。 – silwar

答えて

5

コールcancel()既に表示している場合はトーストを非表示にする方法。

これは単にトーストのオブジェクトで呼び出すことができますthis API.

を見てください。

Toast toast = new Toast(context); 

toast.setText("Text"); 
toast.show();//(call show() to display Toast) 
toast.cancel();//(call cancel() to hide Toast). 
+0

上記のコードを使用しようとすると、エラーメッセージが表示されます。 Toast.makeText(getApplicationContext()、 "Text"、2000).show(); ** (2000は2秒間の継続時間)このメソッドを使用すると、静的メソッド "Toast.makeText" –

+0

'Toast'では継続時間がありません... – pixel

+0

実行時例外を投げます:** java.lang.RuntimeException:このToastはToast.makeText()で作成されていません** –

3

このコードをアクティビティ(グローバルトースト)に追加し、新しいテキストを表示するとキャンセルします。私のトーストが画面上に残っている場合、私がチェックする方法

Toast myLovelyToastThatNeverDies; 
public void onClick(View v) { 

    if(myLovelyToastThatNeverDies==null) 
     myLovelyToastThatNeverDies = new Toast(Activity.this); 
    else 
     myLovelyToastThatNeverDies.cancel(); 
    myLovelyToastThatNeverDies.setText("my new text"); 
    myLovelyToastThatNeverDies.setDuration(anAverageDuration); 
    myLovelyToastThatNeverDies.show(); 
} 
関連する問題