Toast
のcancel()
メソッドを使用して、表示トーストを閉じることができます。
変数を使用して、すべてのトーストを表示する際に参照を保持し、もう1つ表示する前にcancel()
と呼んでください。
private Toast mToast = null; // <-- keep this in your Activity or even in a custom Application class
//... show one Toast
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(context, text, duration);
mToast.show();
//... show another Toast
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(context, text, duration);
mToast.show();
// and so on.
あなたも、そうのような小さなクラスにそれを包むことができます:
public class SingleToast {
private static Toast mToast;
public static void show(Context context, String text, int duration) {
if (mToast != null) mToast.cancel();
mToast = Toast.makeText(context, text, duration);
mToast.show();
}
}
などのように、あなたのコードでそれを使用します。
SingleToast.show(this, "Hello World", Toast.LENGTH_LONG);
//
私は同じ問題を抱えています。私はあなたに仕事をしていないアイデアをいくつか共有しています。トーストファイナルを使用していて、カウンターを使っています。 –
ホラ(こんにちは)Didac、あなたは[これを試してみましたか(http://stackoverflow.com/questions/12922516/how-to-prevent-multiple-toast-overlaps)または[その](http://stackoverflow.com/questions/6496725/showing-multiple-to-at-the-time-problem)? – AlexBcn
最高の方法はトーストを使用しないことです。 :) might – kcoppock