- オート近い2つの異なる状況で警告ダイアログを閉じるには、ダイアログを持ってどこが必要になった
ユーザーからの入力がない場合は10秒後にダイアログを閉じます。私は何らかの種類のタイマーを使うべきですが、どのようにダイアログにそれをつけるかはわかりません。
私は、UIを処理する正しい方法ではないことを理解していますが、私の要件はこれを行う必要があります。
おかげで、
SKU
ユーザーからの入力がない場合は10秒後にダイアログを閉じます。私は何らかの種類のタイマーを使うべきですが、どのようにダイアログにそれをつけるかはわかりません。
私は、UIを処理する正しい方法ではないことを理解していますが、私の要件はこれを行う必要があります。
おかげで、
SKU
あなたはonStartであなたのタイマーを扱うAlertDialog、からカスタムダイアログを継承、自分の考えを共有してください。 AsyncTaskを使用すると、カウントダウンを行うのがよいでしょう。
自動クローズダイアログは何か悪いことではありません...少なくとも、私たちは常にこのようなシナリオに適した画面解像度(win xp)を変更することを見ています。おそらくボタンにカウントダウンタイマーを含めることもできます(「5秒以内に閉じる」など)。後者の場合については
AlertDialog alertDialog = new AlertDialog.Builder(Main.this).create();
...
alertDialog.show();
int valueIamWaitingFor = 5;
if (aValue == valueIamWaitingFor){
alertDialog.hide();
}
2 - :最初のケースでは
の1-
private static final ScheduledExecutorService executor =
Executors.newSingleThreadScheduledExecutor();
public AlertDialog alertDialog = new AlertDialog.Builder(Main.this).create();
...
alertDialog.show();
Runnable hideDialog= new Runnable() {
public void run() {
this.alertDialog.hide();
}
};
executor.schedule(hideDialog, 10, TimeUnit.SECONDS);
こんにちはザカリア...私はあなたがケース-2でやったことに続きます。しかし、WRTをケース1にすると、文字列の返り値を待っています。これは、ほとんどの場合、別のスレッドから4秒(最大8秒)を返します。ケース1のコードスニペットが機能するかどうかはわかりません。その部分を説明していただけますか? – sku
@sku:ちょうど好奇心から、あなたは値が8秒以内に返されることを確信していますか? – Zakaria
それは長い時間の観察のためだけですが、それは時間の8秒以内に答えて返信していない場合...何か間違っています。 – sku