2017-09-27 57 views
1

我有activity1带我到activity2,需要我来片段化。我会从片段想回去活性2在android中执行onbackpressed

public void onBackPressed() { 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 
+4

怎么能活性2'take'你一个片段???它可以打开一个片段本身,或开始另一个活动包含片段 – mrid

回答

0

虽然从活性2添加片段将其添加到堆栈中这样

getSupportFragmentManager().beginTransaction() 
          .replace(R.id.frame_layout, new SampleFragment()) 
          .addToBackStack(SampleFragment.class.getSimpleName()) 
          .commit(); 

而且onBackPressed检查片段在堆栈中,并弹出它

@Override 
public void onBackPressed() { 
    if(getSupportFragmentManager().getBackStackEntryCount()>0){ 
     Fragment fragment=getSupportFragmentManager().findFragmentById(R.id.YOUR_FRAME_LAYOUT_ID); 
     if(fragment!=null && fragment.getClass().getSimpleName().equalsIgnoreCase(SampleFragment.class.getSimpleName())){ 
      getSupportFragmentManager().popBackStackImmediate(); 
     } 
    }else { 
     super.onBackPressed(); 
    } 
} 
+0

谢谢,它与我合作 – jallad

+0

您最欢迎:) – Anonymous

0

的片段获得backpressed事件,并有拨打

getactivity().getsupportfragmentmanager().popbackstack(); 
1
@Override 
public void onBackPressed() { 
    if (getFragmentManager().getBackStackEntryCount() > 0) { 
     getFragmentManager().popBackStack(); 
    } 
    else 
     super.onBackPressed(); 
} 
-1

添加一个片段交易堆栈中。