Ich habe ein Projekt, in dem ich versuche, einige meiner vorhandenen TabHosts Refactoring. Ich habe eine Reihe sehr einfacher TabHost-Dateien, die wie die folgende Klasse aussehen. Einige haben nur einen Tab, einige 3, usw. - der einzige wirkliche Unterschied in ihnen ist die Anzahl der Tabs und die Aktivitätsklasse, die in jedem geladen ist. Ich möchte nur einen einzelnen TabHost erstellen, der die Informationen aus einem übergebenen Bundle abruft, um zu bestimmen, wie viele Tabs und die benötigten Informationen (Spezifikation, Indikator, Inhalt) zum Erstellen/Hinzufügen jedes Tabs benötigt werden. Es scheint, als ob die Elemente, die ich in das Bundle legen kann, ziemlich einfach sind und ich die Parcelable- oder Serializable-Funktionen nicht kenne. Irgendwelche Vorschläge?Android - Erstellen einer generischen TabHost, Übergabe von Informationen mit Bundle-Problem
public class SomeTabHost
extends ActivityGroup
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Inflate ourselves into the layout ViewStub
ViewStub vs = (ViewStub) findViewById(R.id.theViewStub);
vs.setLayoutResource(R.layout.my_tabhost);
vs.inflate();
TabHost host = (TabHost) findViewById(android.R.id.tabhost);
host.setup(getLocalActivityManager());
host.addTab(host.newTabSpec("Tab1")
.setIndicator("Tab1")
.setContent(new Intent(this, SomeActivity.class)));
host.addTab(host.newTabSpec("Tab2")
.setIndicator("Tab2")
.setContent(new Intent(this, SomeOtherActivity.class)));
int numChildren = host.getTabWidget().getChildCount();
for (int i=0; i <numChildren; i++)
{
host.getTabWidget().getChildAt(i).getLayoutParams().height = 35;
}
}// end onCreate
}// end class