私のアプリでは、アクティビティ用のカレンダー ウィジェットを作成し、前月または翌月にスクロールすると、トーストが表示されて表示されるようにしています。
質問は、トーストが表示されるまでに時間がかかることです。たとえば、十分に速くスクロールすると、「2012/05」と「2012/06」までスクロールし、一時停止せずに「2012/07」までスクロールすると、「2012/05」、「2012/06」、「2012/07」のトーストが 1 つずつゆっくりと表示されるまで待たなければなりません。
Androidにはトーストを管理するための目に見えないキューがあるようだ
これをクリーンアップして、最後のトーストだけを表示するにはどうすればよいですか? 待たずに特定のトーストをすぐに表示できますか?
私は検索しました「android.widget.Toast.java」方法を見つけましたcancel()
が、残念ながら以下のようには機能しません。
if (t != null) {
t.cancel();
}
t = Toast.makeText(this.mContext, mHelper.getYear() + "年"
+ (mHelper.getMonth() + 1) + "月", Toast.LENGTH_SHORT);
t.show();
ベストアンサー1
次のように「Toast」変数を宣言するだけです:
Toast toastMessage;
次に、関数内で次のようにします。
if (toastMessage!= null) {
toastMessage.cancel();
}
toastMessage= Toast.makeText(context, "The message you want to display", duration);
toastMessage.show();