Android:Tab开关 - 如何在标签之间切换时更新显示?

时间:2011-07-27 04:40:18

标签: android methods tabs switch-statement android-tabhost

我正在构建的应用程序有一个带有三个选项卡的tabhost。目标是在切换发生时更新新选项卡中的显示。我在构建选项卡主机的主要活动中设置了以下选项卡更改侦听器。

tabHost.setOnTabChangedListener(new OnTabChangeListener(){
  public void onTabChanged(String tabId) {
    //Now what?
  }
});

问题是,如何使用tabId给出并使用它来调用该选项卡中的方法?

修改

稍微澄清一下:当您为新选项卡创建Intent时,您指定了一个活动类,可能会创建一个对象来处理该选项卡的设置和管理。

    intent = new Intent().setClass(this, Setup.class);
    spec = tabHost.newTabSpec("setup").setIndicator("",
      res.getDrawable(R.drawable.tab_setup))
        .setContent(intent);
    tabHost.addTab(spec);

我正在寻找的这个问题是如何获得对该对象的引用?在上面的示例中,Setup类被实例化以处理“设置选项卡”。

立即重述我的问题:我如何从OnTabChangeListener调用Setup类中的方法?

2 个答案:

答案 0 :(得分:2)

尝试使用

tabHost.setOnTabChangedListener(new OnTabChangeListener(){
        public void onTabChanged(String tabId) {
            //Now what?
                  Object.refreshDrawableState();
        }
        });

Where Object = any display Object。

答案 1 :(得分:1)

事实证明,问题的解决方案离家较近。该解决方案不是将代码附加到TabHost,而是通过覆盖onPause和onResume方法进入活动的生命周期。

@Override
public void onResume() {
    super.onResume();
    // Update your UI here.
}