2012-02-22 25 views
2
私は
  • 自動車をお待ちしております、戻り値を取得した後、私は自動

    オートクローズ警告ダイアログ

    1. オート近い2つの異なる状況で警告ダイアログを閉じるには、ダイアログを持ってどこが必要になった

      ユーザーからの入力がない場合は10秒後にダイアログを閉じます。私は何らかの種類のタイマーを使うべきですが、どのようにダイアログにそれをつけるかはわかりません。

    私は、UIを処理する正しい方法ではないことを理解していますが、私の要件はこれを行う必要があります。

    おかげで、

    SKU

  • 答えて

    0

    あなたは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 - :最初のケースでは

    4

    の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); 
    
    +0

    こんにちはザカリア...私はあなたがケース-2でやったことに続きます。しかし、WRTをケース1にすると、文字列の返り値を待っています。これは、ほとんどの場合、別のスレッドから4秒(最大8秒)を返します。ケース1のコードスニペットが機能するかどうかはわかりません。その部分を説明していただけますか? – sku

    +0

    @sku:ちょうど好奇心から、あなたは値が8秒以内に返されることを確信していますか? – Zakaria

    +0

    それは長い時間の観察のためだけですが、それは時間の8秒以内に答えて返信していない場合...何か間違っています。 – sku

    関連する問題