Диалог Android исчезает сам по себе - PullRequest
6 голосов
/ 14 июня 2011

Я использую следующий код для создания своего собственного диалога:

public void ShowMessageDialog(String str){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(str);
    builder.setCancelable(false);
    builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {          
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}

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

public void test(String str){
    ShowMessageDialog("About to start new activity");
    Intent intent = new Intent(this,PageViewer.class);
    startActivity(intent);
}

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

Спасибо!

1 Ответ

7 голосов
/ 14 июня 2011

Намерение, которое вот-вот сработает, не ждет отмены вашего диалога. Итак, сразу после показа диалога запускается новая активность. Вы можете выполнить то, что вы хотите, как это:

public void ShowMessageDialog(String str){
    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage(str);
    builder.setCancelable(false);
    builder.setNeutralButton("Ok", new DialogInterface.OnClickListener() {          
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
            Intent intent = new Intent(this,PageViewer.class);
            startActivity(intent);
        }
    });
    AlertDialog alert = builder.create();
    alert.show();
}

public void test(String str){
    ShowMessageDialog("About to start new activity");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...