Вам не нужно создавать отдельное действие для каждой вкладки. Однако вы должны иметь макет для каждой вкладки.Вам нужны TabHost
, TabWidget
и FrameLayout
.TabWidget
и FrameLayout
должны быть дочерними элементами TabHost
, и им также должны быть назначены конкретные идентификаторы.TabWidget
должен иметь идентификатор android.R.id.tabs
.FrameLayout
должен иметь идентификатор android.R.id.tabcontent
.Любые View
s или Layout
s, которые вы хотите отобразить (для любой части TabHost
), должны быть добавлены к FrameLayout
.ТОГДА вам нужно создать TabSpec
, который связывает все вместе.Это выглядит как-то так (программно) ..
TabHost host = new TabHost(context);
TabWidget widget = new TabWidget(context);
widget.setID(android.R.id.tabs);
FrameLayout frame = new FrameLayout(context);
frame.setID(android.R.id.tabcontent);
frame.addView(viewForTab1);
frame.addView(viewForTab2);
host.addView(widget);
host.addView(frame);
host.setup(); //must be called when defining a tabhost outside of a tabactivity, iirc..
TabSpec spec;
do {
spec = host.newTabSpec(uniqueStringReference);
spec.setContent(viewOrLayoutForTheTab);
spec.otherStuffYouMightWant();
host.addTab(spec);
} while (you have tabs to add);