我正在申请一份申请 在某个地方我想在Activity中加载Fragment,当在 FirstFragment 上点击Gridview / Listview项时,我加载 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();
}
第二片段:
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 :
@Override
public void onBackPressed() {
if(getFragmentManager().getBackStackEntryCount() == 0) {
super.onBackPressed();
} else {
getFragmentManager().popBackStack();
}
}
因此,当我在加载SecondFragment时在Mainactivity上按BackButton时,它会切换到FirstFragment,但它会再次调用FirstFragment的onCreateView()
方法。
FirstFragment里面有一个Recyclerview,我以OnCreateView()
方法向服务器发送API请求,以便将数据加载到此Recyclerview中。
现在当我从SecondFragment再次回到此片段时,我想要它,以便不应该执行请求,并且数据应该填充到RecyclerView中。
我怎样才能做到这一点?
有人可以帮我吗?
答案 0 :(得分:1)
if(mList.size() == 0){
//make api call
}else{
//set recyclerView adapter
}
这样,当你从SecondFragment回来时,你可以重新填充RecyclerView。
您还应该考虑在onSaveInstanceState上保存此列表