2013-03-26 3 views
0

У меня есть 3 фрагмента в моем приложении, разделенные на 3 вкладки соответственно [1] [2] [3].Смена фрагментов с вкладками панели действий

Представьте себе, что я использую кнопку на фрагменте [1], который дает TextView с начальным текстом «X» становится «Y» Ex: tv.setText("I'm a new text");

Так что, когда я перемещаться между вкладками и я вернусь вкладка [1], TextView возвращается с исходным текстом. Это как если бы вызов onCreate() снова вызывался.

Как-то я хочу, чтобы onStop() не вызывался в моих фрагментах, сохраняя все свойства моих представлений (например, текст, видимость и т. Д.) В памяти, когда я переключаюсь между вкладками.

Спасибо!

---- EDIT! ----

Ну, я нашел решение того, что я хотел! Это достаточно просто, я заявляю, что:

mPager = (ViewPager) findViewById(R.id.pager); 
mPager.setOffscreenPageLimit(3); //Number of fragments that I wish to store in memory 

ответ

0

OnCreate метод вызывается снова. Вы можете сохранить значения, переопределив onSavedInstanceState и вернув их в метод onActivityCreated. Для примера позволяет сохранить логическое значение (вы можете сохранить все, что вы хотите - строка, Int и т.д ..):

сохранить значение:

public void onSaveInstanceState(Bundle outState) { 
     outState.putBoolean("booleanValue", true); 
} 

восстановить значение (вы можете назвать это в OnCreate, а):

protected void onActivityCreated(Bundle savedInstanceState) { 
super.onActivityCreated(savedInstanceState); 
      if (savedInstanceState != null && savedInstanceState.containsKey("booleanValue")) { 
       boolean myBoolean = savedInstanceState.getBoolean("booleanValue"); 
      } 
    } 
0

хорошо, это происходит потому, что onCreate на самом деле называется. Если бы я был вами, я бы использовал ViewPager. Таким образом, просто установив offScreenElementNumber на 2, вы сразу же загрузите все фрагменты и сохраните их состояние!

посмотрите на это:

http://tamsler.blogspot.com.es/2011/10/android-viewpager-and-fragments.html

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