私はおそらく愚かなことをしています...同じタブホスト上に静的に作成されたタブが1つと、動的に作成されたタブの山があります。デフォルトでは、静的タブが表示されます。動的に作成されたタブの1つをクリックすると、動的コンテンツが正しく読み込まれます。しかし、その後、動的に作成されたか静的に作成されたかに関係なく、他のタブをクリックすると、何も実行されません。なぜですか?
MyActivitysonResumeメソッドで実行しようとしていることは次のとおりです。
final TabHost tabs = (TabHost)findViewById(R.id.tabHost);
tabs.setup();
// Tab with static content
TabHost.TabSpec instructions = tabs.newTabSpec("instructions");
tabs.setOnTabChangedListener(new TabHost.OnTabChangeListener() {
@Override public void onTabChanged(String tabId) {
setTabColors(tabs);
}
});
instructions.setContent(R.id.instructions);
instructions.setIndicator("Instructions");
tabs.addTab(instructions);
// Tabs with dynamic content
for (int i = 0; i < 5; i++) {
TabHost.TabSpec category = tabs.newTabSpec("cat" + i);
final boolean m_editable = editable;
category.setContent(new TabHost.TabContentFactory() {
public View createTabContent(String tag) {
ScrollView scrollView = new ScrollView(MyActivity.this);
TableLayout dataMatrix = new TableLayout(MyActivity.this);
final LayoutInflater inflater = LayoutInflater.from(MyActivity.this);
for(int i=0; i<2; i++) {
TableRow item = (TableRow) inflater.inflate(R.layout.categorydata_entry, dataMatrix, false);
((EditText)(item.getChildAt(0))).setText("row"+i);
}
dataMatrix.addView(item,new TableLayout.LayoutParams( TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.WRAP_CONTENT));
}
scrollView.addView(dataMatrix);
return scrollView;
}
});
category.setIndicator(i);
tabs.addTab(category);
}
そして、layout.xmlの関連要素:
<TabHost android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@+id/tabHost" >
<HorizontalScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:fillViewport="true"
android:scrollbars="none" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</HorizontalScrollView>
<FrameLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:id="@android:id/tabcontent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/instructions" >
<TextView android:layout_width="fill_parent"
android:text="This is the static content tab" />
</LinearLayout>
</FrameLayout>
</TabHost>