2017-09-27 59 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

添加一個片段交易堆棧中。