2017-02-07 4 views
0

Я показываю FragmentDialog F. Я хотел бы отклонить его, если ответ с сервера положительный. Я использую AsyncTask, чтобы сделать запрос после того, как пользователь нажмет OK на F. Я не могу сразу закрыть окно, потому что мне нужно ждать ответа от сервера.Отклонение DialogFragment

Я вижу два решения:

  1. Отклонить диалог и отображение снова.
  2. Попробуйте скрыть Fragment с помощью диспетчера фрагментов по тегу.

Что такое лучшее решение? Есть ли канонический способ сделать это?

  1. Предположим следующую ситуацию: У меня есть кнопка B. Если пользователь нажимает B, тогда отправьте запрос на сервер. Я подожду ответа, поэтому я покажу ProgressDialog P. Когда resposne прибыл, я хотел бы показать DialogFragment. У меня есть два сомнения:

3a) Что делать, если пользователь очень быстро: клик B -> нажмите B -> showProgressDialog P `. Я имею в виду, пользователь дважды щелкнул дважды. Ему удалось это сделать, потому что он сделал это до появления ProgressDialog (он вызвал два события).

Я не уверен, возможен ли такой сценарий. Если нет, пожалуйста, убедите меня.

3b) Я хочу зафиксировать FragmentManager, когда AsyncTask завершен, чтобы показать FragmenDialog. Но, как? Я не знаю состояния дел!

ответ

0

Просто отпустите свой FragmentDialog F, как только пользователь наберет ОК. А затем покажите progress dialog на время вашего AsyncTask.

Смотрите этот ответ, чтобы узнать, как показать и диалог выполнения отклонять: progressDialog in AsyncTask

+0

Я отредактировал мое сообщение :) –

0

Если вы используете пользовательский класс DialogFragment, использовать что AsyncTask внутри него и на onPostExecute просто уволить его, если результаты является искомым ,

Если вы не используете пользовательский класс, просто создайте его для использования задачи Async.

Смежные вопросы