1

私のアプリでは、多かれ少なかれ 2 秒から 15 秒の間続く手順があります。私が望むのは、手順の開始時に表示される一種のトーストを設定することです。

Loading values. Wait...

ここで、トーストの持続時間を SHORT に設定しました。手順が約 5 秒以下の場合、LONG はそれだけの非常に長いものになるからです。ただし、期間を SHORT に設定すると、10 秒以上続くとトーストが消え、アプリがまだ処理中であることを示すメッセージが表示されないため、ユーザーは何かに触れ始めることができます。

私が望むのは、トーストのようなものを設定することですが、手順が終了したときにプログラムでキャンセルできるようにすることです。何か案は?

4

5 に答える 5

0

Toast の作成時にハンドラーを作成し、それをジョブに渡し、ジョブの開始時に show() メソッドを呼び出し、ジョブの終了時に cancel() メソッドを呼び出すことができます。

ただし、あなたの説明からすると、トースト メッセージは最適な選択ではない可能性があります。トーストはヒントのようなもので、ユーザーが見逃しても影響はほとんどありません。アプリに関する背景情報がほとんどないため、データの読み込み中にユーザーに何も触れさせたくない場合はProgressDialogが必要になるか、ユーザーにジョブの進行状況を知らせたいだけの場合はProgressBarが必要になると思います。

于 2013-09-17T08:39:36.567 に答える
0
final Toast toast = Toast.makeText(ctx, "hello android", Toast.LENGTH_SHORT);

Handler h= new Handler();
    h.postDelayed(new Runnable() {
       @Override
       public void run() {
           toast.show(); 
       }
}, 1000); 



    h.postDelayed(new Runnable() {
       @Override
       public void run() {
           toast.cancel(); 
       }
}, 3000); 
于 2013-09-17T08:39:10.137 に答える
-1

この目的で Toast を使用しないでください。進行状況ダイアログを使用するか、進行状況インジケーターを通知バーに追加する必要があります。そのため、ユーザーはアプリ内にいなくても進行状況を確認できます。

于 2013-09-17T09:04:04.123 に答える