Domanda

Ho un progetto con due schede.Le schede sono create nella classe principale.Qui ho aggiunto anche il tablenser, per gestire le modifiche tra le schede.Ecco l'istante di una scheda:

TabHost tabHost = getTabHost();    
tabHost.setOnTabChangedListener(this);
    TabHost.TabSpec spec;
    Intent intent;
    intent = new Intent().setClass(this, Tab1.class);
    spec = tabHost.newTabSpec("tab1").setIndicator("",
                    res.getDrawable(R.drawable.ic_tab_tab1))
                    .setContent(intent);
            tabHost.addTab(spec);
.

Il metodo dell'ascoltatore:

public void onTabChanged(String tabName) {
    if (tabName.equals("tab1")){
        tab1.load();
    }
}
.

E simili anche per la seconda scheda.La mia domanda è, se i metodi ONCreate () vengono eseguiti solo una volta nelle classi TAB1 e TAB2, come posso "forzare" la classe principale per mostrare l'attività corrispondente dopo la modifica della scheda?Ricevo NullPointerException

Le classi delle schede sono qualcosa del genere:

    public class Tab1 extends Activity{
      public void onCreate(Bundle icicle) {
          super.onCreate(icicle);
          setContentView(R.layout.tab1);
          load();
      }
      public void load(){
        //....
      }
    }
.

È stato utile?

Soluzione

onCreate() method calls only once when your Activity first time loaded.

If you want to perform any functionality on each time you view your Activity, put that functionality in onResume() method.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top