私はアプリケーションで作業しています。
どこかに私が活動中にフラグメントをロードすると、GridViewの/ ListView項目がFirstFragment上でクリックされますと、私はロードSecondFragment同じアクティビティでフラグメントを切り替えると同じフラグメントが再開されます
私が追加したフラグメント以下の方法:
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.form_creation_view);
Fragment fragment = new FirstFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.form_view, fragment).commit();
}
第2のフラグメント:
Fragment fragment = new SecondFragment();
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.form_view, fragment).commit();
MainActivity.javaの
OnBackPress:SecondFragmentがロードされたとき、私はMainactivityに戻るボタンを押したときに
@Override
public void onBackPressed() {
if(getFragmentManager().getBackStackEntryCount() == 0) {
super.onBackPressed();
} else {
getFragmentManager().popBackStack();
}
}
は、それがFirstFragmentに切り替え、それが再びFirstFragmentのonCreateView()
メソッドを呼び出します。
FirstFragmentには内部にRecyclerviewがあり、このRecyclerviewにデータをロードするために、OnCreateView()
メソッドでAPIリクエストをサーバーに送信します。
このFragmentからSecondFragmentに戻ったときに、リクエストを実行しないようにして、データをRecyclerViewに読み込む必要があります。
どうすればこの問題を解決できますか?
誰でも私を助けてくれますか?
スタートに、このリストを保存する検討すべきです。次に、 'onBackPressed()'メソッドのフラグメント状態を管理する方法を変更します –
あなたができることの1つは、リクエストの時間を節約することと、それを開始する前に最後にあなたが行った時を確認することです – lelloman
簡単な方法2ndFragmentが終了している間はフラグを設定し、1stFragmentのonCreateView()が実行されたときにフラグの値を確認することができます。 – RRTW