диалог оповещения Android - PullRequest
       3

диалог оповещения Android

0 голосов
/ 09 декабря 2011

У меня есть окно предупреждения, созданное с помощью следующего кода:

private AlertDialog makeAndShowDialogBox(){

        myDialogBox = 

            new AlertDialog.Builder(this) 
            //set message, title, and icon
            .setTitle("Terminator") 
            .setMessage("Are you sure that you want to quit?") 
            .setIcon(android.R.drawable.btn_star)

            //set three option buttons
            .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
                public void onClick(DialogInterface dialog, int whichButton) { 
                 //whatever should be done when answering "YES" goes here


                    functionShow(myDialogBox);

                }              
            })//setPositiveButton
        /*  .setNeutralButton("Cancel", new DialogInterface.OnClickListener() { 
                public void onClick(DialogInterface dialog, int whichButton) { 
                 //whatever should be done when answering "NO" goes here
                 msg = "Cancel " + Integer.toString(whichButton);   
                 txtMsg.setText(msg);
                }
                })*/


            .setNegativeButton("NO", new DialogInterface.OnClickListener() { 
                public void onClick(DialogInterface dialog, int whichButton) { 
                 //whatever should be done when answering "NO" goes here
                 msg = "NO " + Integer.toString(whichButton);   
                 txtMsg.setText(msg);
             } 
            })//setNegativeButton

            .create();

            return myDialogBox;
    }

Окно предупреждения исчезает, как только пользователь выбирает ОК. Но я хочу, чтобы окно оповещения все еще ждали определенное время, прежде чем исчезнуть, поскольку я хочу изменить сообщение в окне оповещения. Как я могу это сделать?

functionShow имеет следующее определение:

void functionShow(final AlertDialog dia)
    {

        dia.setMessage("Generating Unique ID ... Please Wait ");



        Handler handler = new Handler();
        handler.postDelayed(new Runnable() { 
            public void run() { 
                dia.setMessage("Notyfying the user ... Please Wait");         
            } 
       }, 10000); 


        Handler handler1 = new Handler();
        handler1.postDelayed(new Runnable () {
            public void run()
            {
                dia.setMessage("Your unique id is 0001. Kindly wait for the other person to respond");
            }
        }, 15000);

}

Но программа проверяет, как только я нажимаю ок ... без отображения других сообщений.

Ответы [ 2 ]

1 голос
/ 09 декабря 2011

Используйте пользовательский AlertDialog, например:

MyAlertDialog.java

public class MyAlertDialog extends AlertDialog {

    public boolean allowedToDismiss = false;
    public void dismiss() {
        if(allowedToDismiss) {
            super.dismiss();
        }
    }
}

А внутри класса, где вы держите свой диалог:

MyAlertDialog myDialogBox;    
/*Code...*/

public void onClick(DialogInterface dialog, int whichButton) { 
     myDialogBox.allowedToDismiss = true;
     /*Code...*/
}
0 голосов
/ 09 декабря 2011

Просто некоторые догадки с моей стороны:

В другом потоке с каким-то thread.sleep в нем?

Или в асинхронной задаче с циклом while, который ожидает результата, когда он может продолжить и закрыть диолог?

...