AndroidのToast連打防止
Toastを連打防止するにはcancelメソッドを使用する
android.widget.Toastにはcancel()メソッドが用意されています。
これは、Toastが連続で呼び出された際に既に表示されているToastが
存在する場合はToastを消して再表示するためのメソッドです。
このcancel()メソッドを使用して、Toastを連打しても問題が起きない実装を行っていきます。
それでは、次の項をみていきましょう。
cancelメソッドを使用する例
下記のコードではToastの処理をつかさどるToastMasterクラスを実装しています。
Toastを使用するActivityやFragmentでToastMasterクラスをインポートして使用してください。
public class ToastMaster extends Toast{ private static Toast sToast = null; public ToastMaster(Context context) { super(context); } @Override public void show() { ToastMaster.setToast(this); super.show(); } public static void setToast(Toast toast) { if (sToast != null){ sToast.cancel(); sToast = toast; } } public static void cancelToast() { if (sToast != null){ sToast.cancel(); sToast = null; } } }
Toastを使用する際のコード
ToastMaster.makeText(this, "表示する文言", ToastMaster.LENGTH_SHORT).show();
スポンサーリンク