#java #android
Метод showResults - показывает AlertDialog, метод endOfGame - закрывает Aktivity. При показе AlertDialog появляется на пол секунды, и потом исчезает, как оставить его на экране? private void stopGame() { showResults(); endOfGame(); } private void showResults() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.results); builder.setMessage("Message"); builder.setNegativeButton(R.string.OK, null); builder.create().show(); } В метод stopGame() приложение попадает из AsyncTask, возможно где-то здесь ошибка? private class TimerAsyncTask extends AsyncTask{ private int time; public TimerAsyncTask(int time) { this.time = time; } @Override protected Void doInBackground(Void... params) { while (time > 0) { SystemClock.sleep(1000); time--; publishProgress(time); } return null; } @Override protected void onProgressUpdate(Integer... values) { super.onProgressUpdate(values); chronometrView.setText(values[0].toString()); } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); stopGame(); } }
Ответы
Ответ 1
Присоединюсь к комментарию Abrog Petrovich. В методе showResults() вы вызываете билдер для создания диалогового окна. Строчка AlertDialog.Builder builder = new AlertDialog.Builder(this); по сути говорит, что билдер будет использовать данное активити (инфлейтить его, использовать стиль и тд), те вы создаете диалоговое окно относительно данного активити. Но вы в endOfGame(); я так понимаю закрываете это активити, и закрывается диалог - соответственно. В голову приходят срау два способа решения: 1.Действительно, переместите закрытие Activity те ваш метод endOfGame(); в AlertDialog, пусть срабатывает при его закрытии например, ну или сделайте логику Да/Нет. Дайте пользователю принять выбор. 2.Можете создавать Диалоговое окно в новом Acitivity, или открывать новое Actvity в форме диалогового окна, вариантов здесь много, но нужно видеть что происходит в методе endOfGame().
Комментариев нет:
Отправить комментарий