/ / Tabs mit 1 verschiedenen Aktivitäten Ansichten - Android, Tabs

Tabs mit 1 Aktivität verschiedene Ansichten - Android, Tabs

Ich möchte 1 Aktivität haben, die auf 2 Tabs angezeigt wird.

In meiner Hauptsache habe ich folgendes:

    TabHost tabHost = getTabHost();  // The activity TabHost

tabHost.addTab(tabHost.newTabSpec("tab0").setIndicator(tabNames[0]).setContent(R.id.tab0));
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(tabNames[1]).setContent(R.id.tab1));

Intent intent = new Intent().setClass(this, DMXControllerActivity.class);
startActivity(intent);

In meiner main.xml habe ich dies im FrameLayout:

   <LinearLayout
android:id="@+id/tab0"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
</LinearLayout>

<LinearLayout
android:id="@+id/tab1"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp">
</LinearLayout>

In meiner Tätigkeit habe ich folgendes:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

layoutTab0();
layoutTab1();

}

private void layoutTab0 () {

   LinearLayout ll_main = new LinearLayout(this);
ll_main.setOrientation(LinearLayout.VERTICAL);

LinearLayout myll = (LinearLayout) findViewById(R.id.tab0);

myll.addView(ll_main);

LinearLayout ll_sliders = new LinearLayout(this);
ll_sliders.setOrientation(LinearLayout.VERTICAL);
ll_main.addView(ll_sliders);

...... ..... .....

}

Wenn ich die App starte, sehe ich den Inhalt von Tab0 und Tab1 übereinander. Wenn ich im Emulator die Back-Taste drücke, sehe ich die 2 Registerkarten wie erwartet, aber sie sind leer.

Wie bekomme ich den Inhalt meiner Tabs auf den Tabs angezeigt?

Antworten:

0 für die Antwort № 1

Sie müssen diesen Code nach dem Einstellen von ContentView ausführen:

TabHost tabHost = getTabHost();  // The activity TabHost
tabHost.addTab(tabHost.newTabSpec("tab0").setIndicator(tabNames[0]).setContent(R.id.tab0));
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(tabNames[1]).setContent(R.id.tab1));

Ändern Sie Ihre onCreate () zu:

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

TabHost tabHost = getTabHost();  // The activity TabHost
tabHost.addTab(tabHost.newTabSpec("tab0").setIndicator(tabNames[0]).setContent(R.id.tab0));
tabHost.addTab(tabHost.newTabSpec("tab1").setIndicator(tabNames[1]).setContent(R.id.tab1));

layoutTab0();
layoutTab1();
}

In Ihrem Code erstellen Sie die Tabs und danneine neue Aktivität eröffnen. Wenn Sie die Aktivität nicht öffnen, sind die Tabs vorhanden, aber sie sind leer, weil Sie ihnen den Inhalt nicht hinzugefügt haben. Sie müssen keine neue Aktivität aufrufen, fügen Sie einfach den Inhalt den Tablayouts hinzu und es sollte funktionieren.