Получить текущий фрагмент и сохранить на onSaveInstanceState () метод для ориентации экрана

У меня есть одно действие с несколькими фрагментами. Я также использую actionbarSherlock для своих вкладок, которые также связаны с фрагментами.

Моя проблема в том, что когда я собираюсь повернуть экран (от портрета до пейзажа / наоборот), моя деятельность будет вызвана снова, поэтому она возобновит мою деятельность.

Я хочу не возобновлять свою деятельность, а просто восстановить текущий фрагмент, показанный до его поворота. ПОЖАЛУЙСТА, не отвечайтеandroid:configChanges="orientation|keyboardHidden" так как это не решило проблему, а просто как взломать ее. Моим решением были методы OnsaveInstanceState и onRestoreInstanceState, но я просто не знаю, как использовать их с моей проблемой. Пожалуйста, помогите мне с этим. Любой ответ высоко ценится.

КОД:

 public void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ActionBar actionBar = getSupportActionBar();  
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    ActionBar.Tab tabA = actionBar.newTab().setIcon(R.drawable.about);
    ActionBar.Tab tabE = actionBar.newTab().setIcon(R.drawable.faq);
    ActionBar.Tab tabB = actionBar.newTab().setIcon(R.drawable.sponsors);
    ActionBar.Tab tabC = actionBar.newTab().setIcon(R.drawable.map);
    ActionBar.Tab tabD = actionBar.newTab().setIcon(R.drawable.destination);
    Fragment aboutTab = new PhotosActivity();
    Fragment sponsorTab = new SongsActivity();
    Fragment mapTab = new HCCMapActivity(); 
    Fragment questTab = new FaqActivity(); 
    Fragment DestinationTab = new TourActivity();
    tabA.setTabListener(new MyTabsListener(aboutTab));
    tabB.setTabListener(new MyTabsListener(sponsorTab));
    tabC.setTabListener(new MyTabsListener(mapTab));
    tabD.setTabListener(new MyTabsListener(DestinationTab));
    tabE.setTabListener(new MyTabsListener(questTab));
    actionBar.addTab(tabD, 0, true);
    actionBar.addTab(tabC, 1, false);
    actionBar.addTab(tabA, 2, false);
    actionBar.addTab(tabB, 3, false);
    actionBar.addTab(tabE, 4, false);
}

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
  super.onSaveInstanceState(savedInstanceState);
  // Save UI state changes to the savedInstanceState.
  // This bundle will be passed to onCreate if the process is
  // killed and restarted.
  savedInstanceState.putString("MyString", "Welcome back to Android");
  //savedInstanceState.putString("id",)
  // etc.
  //getSupportFragmentManager().putFragment(savedInstanceState, "fragment", getSupportFragmentManager().findFragmentById(R.id.fragment_place));
}


@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    FragmentManager fragmentManager ;
    FragmentTransaction ft ;
    super.onRestoreInstanceState(savedInstanceState);
  // Restore UI state from the savedInstanceState.
  // This bundle has also been passed to onCreate.
  String myString = savedInstanceState.getString("MyString");
  Log.i("Hello", myString);

    fragmentManager =  getSupportFragmentManager();
    ft = fragmentManager.beginTransaction();
    ft.setCustomAnimations(R.anim.slide_out_left, R.anim.slide_out_right);  
    ft.replace(R.id.fragment_place, getSupportFragmentManager().getFragment(savedInstanceState, "fragment"), null); 
}

@Override
public void onConfigurationChanged (Configuration newConfig){
    Log.i("hello", "Config");
    super.onConfigurationChanged(newConfig); 
}

@Override
public boolean onPrepareOptionsMenu (Menu menu) {
    //MenuItem menuitem1 = menu.findItem(R.id.menuitem1);
    //menuitem1.setVisible(false);

    menu.getItem(1).setVisible(false);
    menu.getItem(0).setVisible(false);
    return true;
}


 protected class MyTabsListener implements TabListener{

    Fragment fragment;

    public MyTabsListener(Fragment fragment){

        this.fragment = fragment;
    }

    public void onTabSelected(Tab tab, FragmentTransaction ft) {           
        if (myTabPosition < 0){
            //ft.setCustomAnimations(android.R.animator.fade_in, android.R.animator.fade_out);  
        }else{
            if (myTabPosition >  tab.getPosition()){
                ft.setCustomAnimations(R.anim.slide_in_left, R.anim.slide_out_right);   
            }else{
                ft.setCustomAnimations(R.anim.slide_out_left, R.anim.slide_out_right);  
            }
        }   
        myTabPosition = tab.getPosition();
        ft.replace(R.id.fragment_place, fragment, null);    
        //ft.commit();
    }

    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub
        ft.remove(fragment);
        getSupportFragmentManager().popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
    }

    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        // TODO Auto-generated method stub

    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос