0

2つのタブがあるプロジェクトがあります。タブはメインクラスで作成されます。ここでは、タブ間の変更を処理するために、タブリスナーも追加しました。これが1つのタブの瞬間です:

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

リスナーメソッド:

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

2番目のタブについても同様です。私の質問は、onCreate()メソッドがTab1クラスとTab2クラスで1回だけ実行される場合、タブが変更された後にメインクラスに対応するアクティビティを表示するように「強制」するにはどうすればよいですか?NullPointerExceptionを受け取ります

タブのクラスは次のようなものです。

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

1 に答える 1

4

onCreate()メソッドは、Activity最初にロードされたときに1回だけ呼び出されます。

を表示するたびに機能を実行する場合はActivity、その機能をonResume()メソッドに入れます。

于 2012-01-27T09:47:53.413 に答える