Как создать элементы 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);
 }

В противном случае вы можете переписать код для использования статических переменных

Другие вопросы по тегам