Окно оповещения .. на и выключено - PullRequest
0 голосов
/ 02 сентября 2011

Привет, я использую alerttdialog..и когда пользователь нажимает кнопку ОК, он должен перезапустить ту же активность (ИГРА) и когда он нажимает нет, он должен перейти в главное меню .. но когда я нажимаю ОК. 2 деятельности работают одновременно, и когда я часы нет .. и вернуться сюда .. диалог все еще присутствует! Помогите! Это фрагмент

  AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
    alertbox.setMessage("oops! wrong answer! wanna play again?");
    alertbox.setPositiveButton("Yea sure!",
            new DialogInterface.OnClickListener() {
                                   Intent game = new Intent("nik.trivia.GAME");
                    startActivity(game);
                    finish();
});





alertbox.setNegativeButton("Nope! take me to the main menu",
            new DialogInterface.OnClickListener() {

                public void onClick(DialogInterface arg0, int arg1) {
                    Intent menu = new Intent("nik.trivia.MENU");
                    startActivity(menu);
                    finish();


                }
            });

Ответы [ 3 ]

1 голос
/ 02 сентября 2011

Вам нужно позвонить dismiss() на AlertDialog после того, как пользователь нажал кнопку.

РЕДАКТИРОВАТЬ: просто поместите эту строку кода:

   arg0.dismiss();

внутри onClick метод.

0 голосов
/ 02 сентября 2011

в вашем случае вы можете добавить: alertbox.dismiss ()

когда вы вызываете finish (), это в целом действие, а не просто диалог

EDIT:

  public void onClick(DialogInterface arg0, int arg1) {
                Intent menu = new Intent("nik.trivia.MENU");
                startActivity(menu);

                arg0.dismiss();
                finish(); 

или вы можете объявить защищенное окно оповещения:

protected AlertDialog alertDialog 

и n вы сможете вызывать увольнение на нем отовсюду

0 голосов
/ 02 сентября 2011

Чтобы запустить только экземпляр этого действия, вы должны установить флаг как singleTask и получить намерение в методе onNewIntent().

Отредактировано:

Установить singleTaskв качестве флага действия в файле манифеста, чтобы не иметь много экземпляров одного и того же действия, и добавьте это в свое действие:

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);   
    setIntent(intent);
    // Do here whatver you want. This method is similar to the onCreate() method.
}
...