El contenido de todas las pestañas desaparece después de navegar a una página distinta de la página con pestañas y volver
Tengo un código que crea pestañas dinámicamente.
Esta es mi MyActivity.java
public class MyActivity extends AppCompatActivity {
.
.
.
.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.audit_form_activity);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
try {
JSONObject jsonObj = new JSONObject(page);
JSONArray jssArray = jsonObj.getJSONArray("AuditQuestions");
int jsonArrLength = jssArray.length();
no_of_categories = jsonArrLength;
for (int i = 0; i < jsonArrLength; i++) {
JSONObject jsonChildObj = jssArray.getJSONObject(i);
categoryName.add(jsonChildObj.getString("categoryName"));
}
} catch (JSONException e) {
e.printStackTrace();
}
viewPager = (ViewPager) findViewById(R.id.pager);
tabLayout = (TabLayout) findViewById(R.id.tabLayout);
viewPager = (ViewPager) findViewById(R.id.pager);
viewPager.setOffscreenPageLimit(no_of_categories);
setupViewPager(viewPager);
tabLayout.setupWithViewPager(viewPager);
tabLayout.setOnTabSelectedListener(onTabSelectedListener(viewPager));
}
private void setupViewPager(ViewPager viewPager) {
Pager adapter = new Pager(getSupportFragmentManager());
for (int i = 0; i < no_of_categories; i++) {
Tab1 tab1 = new Tab1();
adapter.addFragment(tab1, categoryName.get(i));
viewPager.setAdapter(adapter);
viewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(tabLayout));
onTabSelectedListener(viewPager);
}
}
private TabLayout.OnTabSelectedListener onTabSelectedListener(final ViewPager pager) {
return new TabLayout.OnTabSelectedListener() {
@Override
public void onTabSelected(TabLayout.Tab tab) {
pager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
};
}
}
Este es mi adaptador Pager.java
public class Pager extends FragmentStatePagerAdapter {
int mNumOfTabs;
Fragment fragment = null;
private final List<Fragment> mFragmentList = new ArrayList<>();
private final List<String> mFragmentTitleList = new ArrayList<>();
public Pager(FragmentManager manager) {
super(manager);
}
@Override
public Fragment getItem(int position) {
return mFragmentList.get(position);
}
@Override
public int getCount() {
return mFragmentList.size();
}
public void addFragment(Fragment fragment, String title) {
mFragmentList.add(fragment);
mFragmentTitleList.add(title);
}
@Override
public CharSequence getPageTitle(int position) {
return mFragmentTitleList.get(position);
}
}
Al eliminar esta línea de MyActivity.java, el contenido está allí en pestañas incluso después de salir de la página de pestañas y volver:
viewPager.setOffscreenPageLimit(no_of_categories);
Pero no resuelve el problema porque los contenidos que se muestran en las pestañas son inconsistentes, es decir, los contenidos que se supone que aparecen en una pestaña aparecen en la otra pestaña.
Traté de resolverlo, pero sin éxito. ¿Puede tener que ver con el ciclo de vida de los fragmentos?
¿Cómo puedo solucionar esto
No puedo encontrar ninguna solución para esto. Por favor ayuda
Cualquier ayuda será apreciada.
¡Gracias por adelantado