我有 3 个选项卡包含不同的内容。他们从 Internet 加载内容。我使用 3 个 AsyncTasks 来做到这一点。一开始,3 个选项卡显示 3 个 ProgressBar。我希望每次完成一项任务时,它都会更新 TabSpec 并隐藏 ProgressBar。 问题是我不知道如何更新标签规范。
这是我在开始时创建 TabHost 的片段。
final List<View> containerList = new ArrayList<View>();
for(int i = 0; i < 4; ++i) {
final LinearLayout layout = new LinearLayout(this);
final ProgressBar progressBar = new ProgressBar(this);
progressBar.setVisibility(View.VISIBLE);
layout.addView(progressBar);
}
// Prepare labels and icons.
final List<String> tabLabels = Arrays.asList(getResources().getStringArray(R.array.destination_tab_labels));
// TODO Prepare icons here later.
// Populate tabs' contents.
final TabHost tabHost = getTabHost();
for(final String label : tabLabels) {
final TabSpec tab = tabHost.newTabSpec(label);
tab.setContent(new TabContentFactory() {
@Override
public View createTabContent(final String tag) {
// Return ListView here later.
return containerList.get(i++);
}
});
//TODO Add icon here later.
tab.setIndicator(label);
tabHost.addTab(tab);
}