2016-04-08 77 views
0

我有tried stackoverflow上的所有解决方案,但没有帮助我。片段返回活动不工作

当我从默认片段回来,我想展现片段0,但在这里的应用是密切

下面是MainActivity代码

private void selectItem(int position) { 

    switch (position) { 
    case 0: 
     getSupportFragmentManager() 
       .beginTransaction().addToBackStack(PageSlidingTabStripFragment.TAG) 
       .replace(R.id.content, 
         PageSlidingTabStripFragment.newInstance(), 
         PageSlidingTabStripFragment.TAG).commit(); 
     break; 
    default: 

     SherlockFragment fragment = new PlanetFragment(); 
     Bundle args = new Bundle(); 
     args.putInt(PlanetFragment.ARG_PLANET_NUMBER, position); 
     fragment.setArguments(args); 

     getSupportFragmentManager().beginTransaction() 
       .replace(R.id.content, fragment).commit(); 
     break; 
    } 

    mDrawerLayout.closeDrawer(mDrawerList); 
} 

第二块碎片回活动

public void onBackPressed() { 
     FragmentManager fm = getFragmentManager(); 
     if(fm.getBackStackEntryCount() != 0) { 
      fm.popBackStack(); 
      fm.getBackStackEntryAt(0); 

     } else { 
      getActivity().onBackPressed(); 
     } 
    } 
+0

检查活动如何使用接口与片段进行通信。 – Skynet

+0

可能的重复[如何从包含的片段控制活动的向上按钮?](http://stackoverflow.com/questions/34025331/how-can-i-control-the-activitys-up-button-from-一个包含片段) –

回答

0

兄弟更改onBackPressed()中的条件:Like

Integer backStackSize = getFragmentManager().getBackStackEntryCount(); 

     if(backStackSize < 2){ 
      //new Logout_Dialog(MainActivity.this, MainActivity.this); 
//YOU CAN ASK USER WHETHER HE WANTS TO LOGOUT OR NOT HERE...... 
     } 
     else if(backStackSize >= 2){ 

      FragmentManager.BackStackEntry backEntry=getFragmentManager().getBackStackEntryAt(getFragmentManager().getBackStackEntryCount()-1); 


       fragmentManager.popBackStack(); 
     }//else if(backStackSize >= 2) closes here..... 
     else 
     { 
      //Else fragment shud be removed from Backstack.... 
      super.onBackPressed(); 
     }//fragment shud be removed from Backstack.. 
+0

得到onBackPressed()的方法未定义为SherlockFragment类型 –

+0

@Nirav Ranpara:不,请在您的BaseActivity中进行扩展片段的操作。 片段没有onBackPressed(),Activities有。 – Pawan

+0

在哪个文件中我应该写上面的代码 –