2

私は今、私はF2、F3、F4断片を除去する必要があり、この現在のフラグメントと現在のフラグメントを除く現在のフラグメントからすべての以前のフラグメントを削除する方法はありますか?

F1 -> F2 -> F3 -> F4 -> F5 

のようなフラグメントのスタックを持っています。

F5フラグメントから戻るボタンを押すと、F1に移動する必要があります。

注:私は、断片断片を活性から変更していません。フラグメントからフラグメントを変更する。

答えて

2

FragmentF5クリアBack Stack upto F2の破壊時。

このような何か試してみてください:

@Override 
public void onDestroy() { 
    super.onDestroy(); 
    ((MainActivity)getActivity()).clearBackStackInclusive("tag"); // tag (addToBackStack tag) should be the same which was used while transacting the F2 fragment 
} 

Reference

2

フラグを使用してタスクを管理できます。たとえば、これは家の上のすべての活動をクリアします。

Intent intent = new Intent(getApplicationContext(), Home.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent) 

ホームアクティビティで4,5またはそれ以上のタスクを開始すると、5番目にfinishを呼び出して帰宅できます。

私はそれのフラグメントバージョンを楽しみにしていますが、タスクの管理方法によって異なります。

EDIT

私は断片のためにそれを見つけた:

FragmentManager.popBackStack(String name,   FragmentManager.POP_BACK_STACK_INCLUSIVE) 

という名前の1までのすべての状態をポップアップ表示されます。

0

さて、あなたが達成することができます:あなたのF5フラグメントになりまし

public void clearBackStackInclusive(String tag) { 
    getSupportFragmentManager().popBackStack(tag, FragmentManager.POP_BACK_STACK_INCLUSIVE); 
} 

:あなたのMainActivity

public方法をこの行動は、すべての考えを管理するためにF1を使用しています。 プロセスを実行していると仮定すると、すべてのステップが最後の答えに依存します。あなたがしなければならないのは、F1を次のステップにするよりも、F1に戻るだけです。 例:
1度F1で人の電話番号を何に表示するか
2 F1 F2と答えて電話をかけましたか?ユーザーが名前をF1に名前F2戻りを選択し、閉じると
3度F1はF2よりも名前が返されると、この名前でF3を呼び出して取得し、F3はそうでもない空想数

を示しているが、少なくとも私ときのために働いていました私は似たようなことをしなければならなかった。

関連する問題