我有3个标签包含不同的内容。他们从Internet加载内容。我使用3个AsyncTasks来完成它。 开始时,3个选项卡显示3个ProgressBar。我希望每次完成任务时,它都会更新TabSpec并隐藏ProgressBar。 问题是我不知道如何更新标签规范。
这是我在beginnig创建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);
}
答案 0 :(得分:1)
创建3个活动,每个活动都有自己的内容,AsyncTask和progressbar。对于任务完成的任何活动,它将更新其内容并隐藏进度条 将这3个活动添加到选项卡主机,如::
TabHost host = getTabHost();
host.addTab(host.newTabSpec("one").setIndicator("TAB1").setContent(new Intent(this, MyActivity1.class)));
host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(new Intent(this, MyActivity2.class)));
host.addTab(host.newTabSpec("two").setIndicator("TAB2").setContent(new Intent(this, MyActivity3.class)));