2017-09-27 11 views
1

私はアクティビティ1を持っています。フラグメントはbackpressedイベントを取得し、アンドロイドでonbackpressedを実装する

getactivity().getsupportfragmentmanager().popbackstack(); 
+4

それをポップonBackPressedそれを追加している間断片???それは、フラグメント自体を開くか、フラグメントを含む別のアクティビティを開始することができます – mrid

答えて

0

activity2からの断片を追加すると、この

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

ようbackstackするとフラグメントはbackstackに存在しているかどうかを確認してに `take`あなたをactivity2ことができる方法

@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

をactivity2するために戻ってフラグメントからたいと思います。

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

がbackstackするために、そのフラグメントトランザクションを追加します。そこに呼んで、私は

public void onBackPressed() { 
    Intent intent = new Intent(Intent.ACTION_MAIN); 
    intent.addCategory(Intent.CATEGORY_HOME); 
    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    startActivity(intent); 
} 
関連する問題