2013-03-26 36 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"); 
      } 
    }