1

我有以下问题。

我在一个带有 2 个标签的 tabActivity 中。每个选项卡都会启动相同的活动,但有一个 onTabChangeListener。在这个 tabchange 监听器中,我需要为每个活动设置不同的列表视图适配器。所以我将有两个不同的列表,我想从 TabActivity 更改他们的适配器,从这个 onTabchangeListener,但我收到以下错误:系统服务在 oncreate() 之前对活动不可用选项卡的代码是:

  host = getTabHost();

    host.addTab(host.newTabSpec(TAG_AVAILABLE).setIndicator("First Tab")
            .setContent(new Intent(this, MyActivity.class)));
    host.addTab(host.newTabSpec(TAG_DOWNLOAD).setIndicator("Second Tab ")
            .setContent(new Intent(this, MyActivity.class)));
    host.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
        @Override
        public void onTabChanged(String s) {
            MyActivity myActivity = new MyActivity();
            int i = getTabHost().getCurrentTab();
            if (i == FIRST_TAB) {
                setAdapterForMyActivity(firstAdapter);       
            }
            }
            if (i == SECOND_TAB) {
                 setAdapterForMyActivity(secondAdapter);        
            }
            }
        }
    });

}

主要问题是如何设置来自 TabActivity 的 Activity 中的 listView 的适配器。非常感谢你。

4

1 回答 1

2

如果要将适配器传递给子活动,则需要某种全局共享对象。一种选择是将适配器传递给父 TabActivity 中的 Application 对象,然后在子活动中检索它。

于 2012-04-12T07:31:04.227 回答