Ich habe ein Container-Fragment Acadmey
, die eine viewpager
enthält und viewpager
bestehen aus verschiedenen child fragments
. In den Kindfragmenten von View pager rufe ich die json-Anforderung auf, um die Daten zu erhalten, die aufgefüllt werden sollen. Zum ersten Mal funktioniert alles gut, aber wenn ich wieder nach main activity
bekommen und wieder dem Rücken zur Ansicht Pager erhalten alle Inhalte des child fragment
ist weggewischt und onActivityCreated
Anrufe nur von der ersten Zeit daher meine viewpagers Seiten sind blank für jede Sekunde oder n mal ich geöffnet. Wie kann ich den Inhalt des Kindfragments für die Wiederverwendung speichern oder ist es eine beliebige Methode, die jedes Mal, wenn das Kindfragment von Viewpager wieder geöffnet wird, callbacked
ist.Android - Speichern von Viewpager in einem Fragment
Mein Container Fragment: -
public class Academy extends Fragment {
ViewPager viewPager = null;
TabLayout tabLayout;
MyViewPagerAdapter adapter;
private String myString = "hello";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d("xx", "view started .............. papa");
return inflater.inflate(R.layout.academy, container, false);
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
tabLayout = (TabLayout) getActivity().findViewById(R.id.tablayoutacademy);
viewPager = (ViewPager) getActivity().findViewById(R.id.academypager);
adapter = new MyViewPagerAdapter(getActivity().getSupportFragmentManager());
adapter.addfragment(new FragmentCourse(), "COURSES");
adapter.addfragment(new FragmentEducator(), "EDUCATORS");
viewPager.setAdapter(adapter);
tabLayout.setupWithViewPager(viewPager);
}
}
Mein Viewpager Kinder Fragment (Kurse)
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
Log.d("xx", "view course started...........................");
progress=new ProgressDialog(getContext());
progress.setMessage("Nukeing..");
progress.show();
return inflater.inflate(R.layout.fragmentcourse, container, false);
}
@Override
public void onActivityCreated(Bundle jhoola2) {
super.onActivityCreated(jhoola2);
Log.d("xx", "acti cource started");
recyclerView = (RecyclerView) getActivity().findViewById(R.id.rv2);
manager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(manager);
recyclerView.setHasFixedSize(true);
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
MyImageCompress ic=new MyImageCompress();
Bundle bundle=new Bundle();
bundle=msg.getData();
title1 = bundle.getStringArrayList("C_name");
dec1=bundle.getStringArrayList("Discription");
image1=bundle.getStringArrayList("Image");
for (int i = 0; i < image1.size(); i++) {
imageArray1.add(ic.StringToBitMap(image1.get(i)));
Log.d("handleMessage: "," Final parse" +i);
}
Log.d("handleMessage: EDU ", title1.size() + "" + dec1.size() + imageArray1.size());
adapter = new RecyclerAdaptra(title1, dec1, imageArray1);
progress.hide();
recyclerView.setAdapter(adapter);
adapter.notifyDataSetChanged();
}
};
GetCources gc= new GetCources(url,handler);
gc.executeRequest();
}
}
* My ViewPager Adapter *
class MyViewPagerAdapter extends FragmentPagerAdapter {
ArrayList<Fragment> fragments = new ArrayList<Fragment>();
ArrayList<String> tabtitles = new ArrayList<String>();
public void addfragment(Fragment fragments, String titles) {
this.fragments.add(fragments);
this.tabtitles.add(titles);
}
public MyViewPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int i) {
return fragments.get(i);
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabtitles.get(position);
}
}