2012-04-24 15 views
0
の間に

私は方法showText()でトーストを持っています。このメソッドは、そのメソッドを呼び出すときにトーストを示します。 2番目のアクティビティではボタンがあり、ボタンをクリックすると私のトーストが表示されます。すべてがうまくいっていますが、2つまたはそれ以上の時間をクリックすると、私のトーストは長い時間を表示します。私はボタンをクリックしたときにのみトーストをしたいので、もう一度クリックすると、トーストが消えて再び表示されます。Androidとトースト

public void showText(String msg) { 

     Toast.makeText(this, msg, 1000).show(); 

} 

どうすればいいですか?代わりにショーを()を呼び出すの

答えて

3

、あなたはちょうど

Toast toast = Toast.makeText(this, msg, 1000); 
then toast.show(); 
and then later, call some methods on the toast like toast.cancel(); 

http://developer.android.com/reference/android/widget/Toast.html

+0

この方法は、これは時に仕事でそれを行うことができます私はこのトーストと最初のアクティビティでこのメソッドを持っていて、私はそのソリューションを2番目に使いたいですか? – edi233

+0

@ edi233これはどのように行うべきかです。 Toast.cancel()は特定のケースではバグが多いようで、何もしません。キャンセル()を使用することができない場合は、別の解決策(例えば、自分のカスタム 'トースト')に切り替える必要があります。編集:これはあなたのコメントへの返信のコメントではありません。 – Joe

1

を作成トーストへの参照を保持することができます

class YourActivity extends Activity implements OnclickListener 
{ 

Toast toast = null; 

void onclick(View v) 
{ 
//call showText() method 
} 

// modify your showText as follows 
public void showText(String msg) { 

    if(toast != null) 
    { 
    toast.cancel(); 
    toast = null; 
    } 
    toast = new Toast(YourActivity.this); 
    toast.setText(msg); 
    toast.show() 

} 


} 
関連する問題