Question

J'ai un projet avec deux onglets.Les onglets sont créés dans la classe principale.Ici, j'ai aussi ajouté le tablisateur pour gérer les modifications entre les onglets.Voici un instant d'une onglets:

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);

La méthode de l'auditeur:

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

et similaire pour le deuxième onglet également.Ma question est que si les méthodes Oncreate () ne fonctionnent qu'une seule fois dans les classes Tab1 et Tab2, comment puis-je "forcer" la classe principale à afficher l'activité correspondante après que l'onglet change?Je reçois NullPointerException

Les classes des onglets sont comme ceci:

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

Était-ce utile?

La solution

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top