Android 如何保存片段';跨片段事务的状态

Android 如何保存片段';跨片段事务的状态,android,android-fragments,android-ui,Android,Android Fragments,Android Ui,我有一些困难,我的头围绕android碎片。我有一个带有微调器的ActionBar,每次单击微调器项目时,我都会创建一个新的片段。我有如下代码: public class MyActivity extends Activity { ... ... private void initActionBarSpinner() { getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

我有一些困难,我的头围绕android碎片。我有一个带有
微调器的
ActionBar
,每次单击微调器项目时,我都会创建一个新的
片段。我有如下代码:

public class MyActivity extends Activity
{
   ...  
   ...
   private void initActionBarSpinner()
   {
      getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);

      OnNavigationListener callback = new OnNavigationListener()
      {
          @Override
          public boolean onNavigationItemSelected(int itemPosition, long itemId)
          {
             if (itemPosition >= 0 && itemPosition < dataSet.size())
             {
                openTagFragment(itemPosition);
                return true;
             }

             return false;
          }
       };

       spinnerAdapter = new ArrayAdapter<String>(this, R.layout.action_bar_spinner, R.id.spinnertAdapterItem, tags);
       getActionBar().setListNavigationCallbacks(spinnerAdapter, callback);
   }

   @Override
   public void onCreate(Bundle savedInstanceState)
   {
      Log.d(TAG, TAG + " oncreate");

      super.onCreate(savedInstanceState);

      initActionBarSpinnerAdapter();
   }

   protected void openTagFragment(int itemPosition)
   {
      Log.d(TAG, "Replacing fragment");

      String fragmentTag = dataSet.get(itemPosition);
      MyFragment myFragment = new MyFragment();
      myFragment.setData(dataSet.get(itemPosition));
      FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
      fragmentTransaction.replace(R.id.fragmentContainer, myFragment, fragmentTag);
      fragmentTransaction.addToBackStack(null);
      fragmentTransaction.commit();
   }
}
公共类MyActivity扩展活动
{
...  
...
私有void initActionBarSpinner()
{
getActionBar().setNavigationMode(ActionBar.NAVIGATION\u MODE\u列表);
OnNavigationListener回调=新建OnNavigationListener()
{
@凌驾
公共布尔值onNavigationItemSelected(int-itemPosition,long-itemId)
{
如果(itemPosition>=0&&itemPosition
我面临的问题是:在方向改变时,会创建一个新的片段,这意味着它会再次从服务器获取相同的数据。我可以看到在旋转时对现有片段调用
onSaveInstanceState()
,但如果我要再次对
片段执行新操作,我将在片段的
onCreate()
上何时以及如何获得有效的savedInstance包?

不要在标题中添加“Android:”。你有这个的标签吗