2012-04-18 36 views
0

私のAndroidアプリケーションは AlertDialog.Builder.setMessage("OK").show(); を使用しますが、このパネルは自動的には表示されません。ユーザーは自分の電話機で戻るキーをクリックする必要があります。 メッセージを3秒間表示してから自動的に非表示にできますか?AlertDialogを自動的に非表示にする方法

答えて

0

はトーストクラスを使用してみてください:あなたのダイアログボックスを非表示に

Toast.makeText(this, "OK", Toast.LENGTH_LONG).show();

+0

おかげで、トーストを達成することができますもあるが、私はAlertDialog.BuilderやトーストがAlertDialog'が持っている^^ – zhangbin

+0

'show()メソッドが、なぜ持っていない非表示()メソッドを持って知っている願っています。これを試してみてください'cancel()'メソッドを使用すると、タイマーでこれを使用してダイアログを非表示にすることができます。 – Sam

-1
Try Thread to show alert for some time.... 

private boolean mActive = true; 
private final int SPLASH_DISPLAY_LENGHT = 2000; 

Thread splashTread = new Thread() { 
      @Override 
      public void run() { 
       try { 
        int waited = 0; 
        while (mActive && (waited < SPLASH_DISPLAY_LENGHT)) { 
         sleep(70); 

         waited += 70; 

        } 
//set Alert dialog here 
        AlertDialog.Builder.setMessage("OK").show(); 

       } catch (InterruptedException e) { 
        e.printStackTrace(); 
       } 
      } 
     }; 
     splashTread.start(); 
+1

は、UIスレッドで 'show'を呼び出さなければならないので動作しません。さらに、質問 – njzk2

1

使用メッセージハンドラ。

AlertDialog test_ok = null; 
android.os.Handler messagHandler = null; 
Message msg = new Message(); 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    test_ok = new AlertDialog.Builder(this).setMessage("ok").create(); 
    test_ok.show(); 

    messagHandler = new android.os.Handler() { 
     public void handleMessage(android.os.Message msg) { 
      switch (msg.what) { 
       case 1: 
        test_ok.dismiss(); 
        break; 
      } 
     }; 
    }; 

    msg.what = 1; 
    messagHandler.sendMessageDelayed(msg, 4000); 
} 
+0

で尋ねられていることとは逆ですが、test_okは却下する前に表示されていることを確認してください。さもなければ、それはクラッシュします – njzk2

関連する問題