Eu tenho numa activity, uma actionbar com 5 tabs, cada uma contendo um listfragments. Cada fragment no seu onCreate carrega uma lista de itens e seta seu adapter.
Até então está funcionando bem, exceto por um detalhe: Se eu estou na aba 1, vou pra 2, e volto pra 1, seu conteúdo precisa ser recarregado. E assim é sucessivamente se eu for da primeira até a última aba e voltar.
Gostaria de saber como fazer para manter essa lista armazenada de modo que eu nao precise executar o carregamento toda vez que voltar pra aba, que ela seja carregada somente na primeira vez que eu exibo o fragment.
Aqui está a activity:
public class CardapioActivity extends ActionBarActivity {
ActionBar actionbar;
public static Database db;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
actionbar = getSupportActionBar();
db = new Database(this);
/*
* View v = findViewById(android.R.id.content);
* v.setBackgroundResource(R.drawable.fundo_cardapio);
*/
actionbar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
actionbar.setDisplayHomeAsUpEnabled(true);
addTabs();
}
public void addTabs() {
Tab tab = actionbar.newTab().setText("Pizzas")
.setTabListener(new TabListener(new PizzasFragment(this)));
actionbar.addTab(tab);
tab = actionbar.newTab().setText("Pizzas Doces")
.setTabListener(new TabListener(new PizzasDocesFragment(this)));
actionbar.addTab(tab);
tab = actionbar.newTab().setText("Massas")
.setTabListener(new TabListener(new MassasFragment(this)));
actionbar.addTab(tab);
tab = actionbar.newTab().setText("Bebidas")
.setTabListener(new TabListener(new BebidasFragment(this)));
actionbar.addTab(tab);
tab = actionbar.newTab().setText("Vinhos")
.setTabListener(new TabListener(new VinhosFragment(this)));
actionbar.addTab(tab);
}
private class TabListener implements ActionBar.TabListener {
private Fragment fragment;
public TabListener(Fragment fragment) {
this.fragment = fragment;
}
/* The following are each of the ActionBar.TabListener callbacks */
public void onTabSelected(Tab tab, FragmentTransaction ft) {
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.replace(android.R.id.content, fragment);
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}
}
Desde já, agradeço qualquer ajuda.