2013-03-26 65 views
0

我的應用程序中有3個片段分別分爲3個選項卡[1] [2] [3]。使用操作欄選項卡交換片段

想象一下,我使用的片段[1],這將使一個TextView的初始文本「X」變成了「Y」前的按鈕:tv.setText("I'm a new text");

所以,當我在標籤之間導航和我回選項卡[1],TextView返回原始文本。就好像onCreate()再次調用一樣。

我希望以某種方式在我的片段中調用onStop(),並在標籤間切換時保留內存中所有屬性(例如文本,可見性等)。

謝謝!

---- 編輯! ----

嗯,我找到了我想要的解決方案!這很簡單我聲明:

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

回答

0

onCreate方法被再次調用。您可以通過覆蓋onSavedInstanceState來保存值,並將它們返回到onActivityCreated方法中。例如,您節省布爾(你可以保存任何你想要的 - 字符串,整數等):

保存價值:

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"); 
      } 
    } 
相關問題