2013-08-09 3 views
3

Сценарий:
У меня есть один Activity, в котором у меня есть multiple fragments и я replacing один фрагмент с другом с помощью fragment transaction и добавить их в BackStack. Я выполняю JSON-анализ и связанную с сетью задачу на некоторых фрагментах.Фрагмент OnStart и onCreateActivity вызывается после нажатия кнопки назад

Проблема: Моя проблема заключается в том, что после замены фрагмента, когда я нажимаю кнопку назад nevigate для последнего фрагмента в onStart и onActivityCreated методы, называемые еще раз. Мой код в этих событиях выполняется каждый раз, когда я navigate к этому fragment с помощью back button

Но Любое значение в EditText остаются такими же в даже после replacing фрагмента и возвращается к нему с помощью кнопки назад.

Почему onStart и onActivityCreated выполняются каждый раз? Есть ли какой-либо метод, когда я могу поместить свой код, который не будет выполнен после возврата к фрагменту?

UPDATE В принципе, я хочу, чтобы текст кнопки был создан после создания фрагмента. Пользователь может изменить этот текст. но когда я вернусь обратно к этому фрагменту, значение пользователя изменится с текстом по умолчанию, который я установил на время создания фрагмента.

Благодаря

ответ

4

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

OnCreate()

Система называет это при создании фрагмента. В рамках вашей реализации вы должны инициализировать основные компоненты фрагмента, которые вы хотите сохранить, когда фрагмент приостановлен или остановлен, а затем возобновлен.

См. Жизненный цикл фрагмента. enter image description here

Вы также можете получить более подробную информацию here

+0

Пожалуйста, проверьте мой обновленный вопрос. –

+0

, в каком методе вы установили текст кнопки? –

+0

onStart() метод –

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