При возвращении в Actitiy отображается закрытое диалоговое окно, - PullRequest
1 голос
/ 08 июня 2011

У меня есть действие, которое вызывает диалоговое окно с предупреждением. Затем я закрываю диалоговое окно и начинаю новое действие, используя намерение. Диалоговое окно закрывается, диалоговые обратные вызовы onStop и onDismissDialog уведомляются, и новое действие открыто.

Проблема возникает, когда я заканчиваю второе действие (либо вызывая Activity.finigh (), либо завершаю процесс с помощью adb). Первое действие отображается снова, но диалог все еще там.

Этого не происходит, если пользователь выходит из второго действия, нажав назад.

Пример кода:

public class FirstActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
    builder.setMessage("Dialog title").setPositiveButton(
            "Open new activity", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int id) {
                    dialog.dismiss();
                    Intent i = new Intent(FirstActivity.this,
                            SecondActivity.class);
                    startActivity(i);
                }
            });

    builder.create().show();

}
}

Я пытался открыть и закрыть диалог с Activity.showDialog () и Activity.dismissDialog (), но он работает так же,

Что я делаю не так ?? Есть идеи ??

Спасибо

Ответы [ 2 ]

0 голосов
/ 09 июня 2011

Ваш последний оператор в методе onCreate () имеет цепочечный вызов с последним вызовом "show ()" ... Я бы порекомендовал вам удалить его, потому что каждый раз, когда вы создаете действие, которое вы создаете, и показывает диалоговое окно .

Вместо этого переместите операторы создания диалога в метод onCreateDialog (). Вызовите showDialog (), когда вы хотите, чтобы он отображался.

0 голосов
/ 08 июня 2011

Давайте попробуем dismiss(); вместо dialog.dismiss();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...