8

アプリでトーストを使用しています。ボタンを押すと、トーストが表示されます。私の問題は、ボタンを2回目に押すと、2番目のトーストが最初のトーストが終了するのを「待っている」ということです。これは私の簡単なコードです:

toast = Toast.makeText(getApplicationContext(), "Press Back to retorn to the main page", Toast.LENGTH_SHORT);
toast.show();

どうやってやるの?

4

4 に答える 4

6

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 オブジェクトを作成する代わりに、最初のオブジェクトを使用してキャンセルし、新しいテキストを設定して再度表示することができます。

于 2012-06-04T08:51:37.927 に答える
3

https://stackoverflow.com/a/4485531/517561では、ライターはトーストをキャンセルせず、テキストを変更しただけです。

于 2012-06-04T08:56:59.213 に答える
1

次のトーストを表示する前に toast.cancel() を使用できます。

于 2012-06-04T08:52:02.103 に答える