アプリでトーストを使用しています。ボタンを押すと、トーストが表示されます。私の問題は、ボタンを2回目に押すと、2番目のトーストが最初のトーストが終了するのを「待っている」ということです。これは私の簡単なコードです:
toast = Toast.makeText(getApplicationContext(), "Press Back to retorn to the main page", Toast.LENGTH_SHORT);
toast.show();
どうやってやるの?
Toast オブジェクトはいつでもキャンセルできます。
final Toast tst = Toast.makeText(ctx, "This is a toast.", Toast.LENGTH_SHORT);
tst.show();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
tst.cancel();
tst.setText("Same toast with another message.");
tst.show();
}
}, 1000);
したがって、別の Toast オブジェクトを作成する代わりに、最初のオブジェクトを使用してキャンセルし、新しいテキストを設定して再度表示することができます。
https://stackoverflow.com/a/4485531/517561では、ライターはトーストをキャンセルせず、テキストを変更しただけです。
次のトーストを表示する前に toast.cancel() を使用できます。