3 つのタブに異なるコンテンツが含まれています。インターネットからコンテンツを読み込みます。私はそれを行うために 3 つの AsyncTasks を使用します。最初は、3 つのタブに 3 つの ProgressBar が表示されます。1 つのタスクが終了するたびに、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);
}