Toastの表示時間を任意に設定する方法
2934 ワード
前言
AndroidのToastコントロールは、ユーザーと対話するウィンドウを適用し、ユーザーに対話する情報を提示したり警告したりしますが、Toastが設定されていてもLENGTH_LONG、数秒しかないのに、どうやってこの時間を勝手に設定しますか?!
方法
まず、次の方法を書きます.
もちろん、このメソッドをstaticに設定して、ツールクラスに追加して、呼び出しを容易にすることもできます.次の方法を使用します.
注意すべき点: Toastオブジェクトを作成する場合は、Toast.を設定します.LENGTH_LONG、最後にshow()メソッドを呼び出さないでください. showMyToast()メソッドは、2つのパラメータを入力し、最初のパラメータは私たちが作成したToastオブジェクトであり、2番目のパラメータは私たちが表示したいミリ秒数を設定します!
この方法は、比較的巧みで、投機的に巧みな成分もあります!AndroidシステムToastの表示は、Toastキューが存在するため、Toastが表示されると、キューから次のキューが取り出されて表示されます!また、ソースコードの
ここで採用する方法は、Timerを使用してTimeTaskをスケジューリングし、delayは0 sを設定しているので、すぐに
AndroidのToastコントロールは、ユーザーと対話するウィンドウを適用し、ユーザーに対話する情報を提示したり警告したりしますが、Toastが設定されていてもLENGTH_LONG、数秒しかないのに、どうやってこの時間を勝手に設定しますか?!
方法
まず、次の方法を書きます.
public void showMyToast(final Toast toast, final int cnt) {
final Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
toast.show();
}
}, 0, 3500);
new Timer().schedule(new TimerTask() {
@Override
public void run() {
toast.cancel();
timer.cancel();
}
}, cnt );
}
もちろん、このメソッドをstaticに設定して、ツールクラスに追加して、呼び出しを容易にすることもできます.次の方法を使用します.
Toast toast=Toast.makeText(RegistActivity.this, " Toast", Toast.LENGTH_LONG);
showMyToast(toast, 9*1000);
注意すべき点:
この方法は、比較的巧みで、投機的に巧みな成分もあります!AndroidシステムToastの表示は、Toastキューが存在するため、Toastが表示されると、キューから次のキューが取り出されて表示されます!また、ソースコードの
Toast.LENGTH_LONG
の表示時間は3500ミリ秒、LENGTH_SHORT
の表示時間は2000ミリ秒です.これは、frameworks\base\services\Java\com\android\server
パスの下にNotificationManagerService.java
のファイルがあります.private static final int LONG_DELAY = 3500;
private static final int SHORT_DELAY = 2000;
ここで採用する方法は、Timerを使用してTimeTaskをスケジューリングし、delayは0 sを設定しているので、すぐに
toast.show()
を実行し、3.5 sおきにもう一度実行し、順番に類推します.最後に、別のTimerを使用してキャンセル前のtimerと取り消しtoastをスケジューリングし、ここではcnt
ミリ秒の実行遅延が設定されています.ここでのcnt
は私たちが示したいミリ秒数です.