使用onCreate()的TabActivity监听器

时间:2012-01-27 09:42:54

标签: android listener tabactivity android-tabactivity

我有一个带有两个标签的项目。选项卡在主类中创建。在这里我也添加了tablistener,以处理选项卡之间的更改。这是一个标签的即时消息:

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

第二个标签也类似。我的问题是,如果onCreate()方法在Tab1和Tab2类中只运行一次,那么在标签更改后如何“强制”主类显示相应的Activity?我收到NullPointerException

标签的类是这样的:

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

1 个答案:

答案 0 :(得分:4)

onCreate()方法仅在首次加载Activity时调用一次。

如果您想在每次查看Activity时执行任何功能,请将该功能放在onResume()方法中。