Как создать элементы Fragment, когда приложение запускается без их воссоздания
Я использую четыре фрагмента в mainacctivity, и у каждого есть свой класс с классом mainacctivity.
У меня есть элементы в классе фрагмента 1, когда я создаю их внутри метода onCreateView, они создаются каждый раз, когда я открываю фрагмент.
Я пытался создать элементы в методе onStart в классе фрагмента, ничего не изменилось. Я пытался создать элементы в методе onCreate в классе фрагмента, он останавливает приложение.
Когда я создаю элементы в методе onCreate, onStart в MainActivity, приложение останавливается.
Итак, в основном я хочу создать элемент только один раз, и при запуске приложения они должны быть созданы.
Как я могу решить эту проблему? Спасибо за помощь.
2 ответа
Я рекомендую вам сохранять состояние вашего приложения с помощью onSavedInstanceState() при изменениях конфигурации, потому что при запуске приложения onCreate() вызывается один раз, пока не произойдет изменение конфигурации: и жизненный цикл каждого фрагмента зависит от действия, которое их запускает, следовательно, вы необходимо проверить обнуляемость saveInstanceState в соответствующих действиях и фрагментах таким образом, чтобы логики внутри onCreate() для действия и onCreateView() для фрагмента были определены для обоих случаев, когда saveInstanceState равно нулю, а не нулю. Таким образом, если ваше приложение должно вызывать onCreate() и onCreateView() после одного раза, обнуляемость сохраненного состояния будет определять логику для запуска
Самый простой способ - добавить простую проверку, если они нулевые или нет, перед их созданием.
private String test;
if(test == null) test = new String()
Для этого метода вы должны убедиться, что переменные находятся в области действия всего вашего класса
class test{
private String test;
public void update(){
if(test == null) test = new String();
textView.setText(test);
}
В противном случае вы можете переписать код для использования статических переменных