2

アラートダイアログに数字(1から5)を表示し、1秒後に数字が変化するサンプルのAndroidアプリを開発しています。ここで、5秒後にAlertDialogを閉じたいと思います。アラートダイアログボックスを閉じる方法。これまでに開発したコードを確認できます。この点で私を助けてください。助けていただければ幸いです。

    timeView = new TextView(this);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);


            builder.setView(timeView);
            builder.setTitle("Time"); 
            builder.setCancelable(false);
            builder.show();




timeView.postDelayed(new Runnable()
        {
            public void run()

            {

                switch(timeSecond)
                {

                     case 0:timeView.setText("5"); 
                     timeSecond++;
                     break;

                     case 1:timeView.setText("4"); 
                     timeSecond++;
                     break;

                     case 2:timeView.setText("3"); 
                     timeSecond++;
                     break;

                     case 3:timeView.setText("2"); 
                     timeSecond++;
                     break;

                     case 4:timeView.setText("1"); 
                     timeSecond++;
                     break;


                }
                if(timeSecond!=5)
                {
                    timeView.postDelayed(this,1000);

                }

                else
                {
                    //Here I want to close the Alert Dialog

                }

            }
        }, 1000);
4

2 に答える 2

2
final AlertDialog dialog = builder.show();
....
dialog.dismiss() 

ダイアログを閉じます。

編集:上記のコードについては、別の方法をお勧めします:

    if (!conditionTrue) {
        AlertDialog.Builder builder = new AlertDialog.Builder(this);

        builder.setTitle("Hello"); 
        builder.setMessage("Hello Android");
        builder.setCancelable(false);
        builder.show();
    }

ダイアログを閉じたい場合は、ダイアログを表示する必要はありません。

于 2012-10-08T16:33:06.780 に答える
0

それを参照に割り当てて、それに対して却下を呼び出すことはできませんか?

AlertDialog.Builder builder = new AlertDialog.Builder(this);

builder.setTitle("Hello"); 
builder.setMessage("Hello Android");
builder.setCancelable(false);
AlertDialog dialog = builder.show();
...
if(conditionTrue)
{
    //Here close the Alert Dialog
    dialog.dismiss()
}
于 2012-10-08T16:56:07.223 に答える