我有以下问题。
我在一个有 2 个选项卡的 tabActivity 中。每个选项卡都会启动相同的 Activity ,但有一个 onTabChangeListener。 在这个 tabchange 监听器中,我需要为每个 Activity 设置不同的 ListView 适配器。 所以我将有两个不同的列表,我想从 TabActivity 和这个 onTabchangeListener 更改它们的适配器,但我收到以下错误:系统服务在 oncreate() 之前对 Activity 不可用 选项卡的代码是:
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 的适配器。 非常感谢。
最佳答案
如果您想将适配器传递给子 Activity ,您将需要某种全局共享对象。一种选择是将适配器传递给父 TabActivity 中的应用程序对象,然后在子 Activity 中检索它。
关于java - 如何从 TabActivity 中的外部 Activity 填充 ListView 适配器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10119142/