android erste Reiter Absicht oncreate immer unabhängig wir Satz tab2 als Standard-Tab aufgerufen

StackOverflow https://stackoverflow.com/questions/2370630

  •  24-09-2019
  •  | 
  •  

Frage

Im Anschluss an das Beispiel von Tabs mit Absichtsdaten.

Während des Debuggens fand ich, dass immer dann, wenn erste Registerkarte wir in Tab Host in unserem Fall folgende Tab

hinzufügen
tabHost.addTab(tabHost.newTabSpec("tab1")
                    .setIndicator("list")
                    .setContent(new Intent(this, List1.class)));

oncreate Methode der „List1“ Absicht get genannt unabhängig ist es unsere aktuellen Tab oder nicht, auch wenn wenn ich tab2 als aktuelle Registerkarte definieren, wie dieses Problem beheben?

public class Tabs3 extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        final TabHost tabHost = getTabHost();

        tabHost.addTab(tabHost.newTabSpec("tab1")
                .setIndicator("list")
                .setContent(new Intent(this, List1.class)));

        tabHost.addTab(tabHost.newTabSpec("tab2")
                .setIndicator("photo list")
                .setContent(new Intent(this, List8.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));

        // This tab sets the intent flag so that it is recreated each time
        // the tab is clicked.
        tabHost.addTab(tabHost.newTabSpec("tab3")
                .setIndicator("destroy")
                .setContent(new Intent(this, Controls2.class)
                        .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)));
    }
}
War es hilfreich?

Lösung

  

setDefaultTab (1);

scheint nicht in TabActivity zu arbeiten, wenn getrennten Aktivitäten als Tab Content verwendet werden.

Verwenden Sie anstelle dieser Methode folgen,

  

tabHost.setCurrentTab (1);

Dies wird auf „Foto-Liste“ (das heißt zweiten Registerkarte) als ausgewählt oder Standard-Tab ...

Andere Tipps

Ich habe das gleiche Verhalten wie auch gefunden, und ich habe nicht eine bestimmte fix haben. Aber ich weiß von einer Work-around.

Stattdessen Aktivitäten auf jeder Registerkarte des Anbringens, fügen Sie eine Ansicht auf den einzelnen Registerkarten. Anschließend können Sie die Daten verarbeiten sehr leicht als jede Ansicht geben wird in der gleichen Aktivität sein. Dadurch entfällt auch die Notwendigkeit, Informationen mit Intents zu übergeben. Darüber hinaus können Sie erstellen (oder aufblasen) Ihre Ansichten, wie Sie sie und mit mehr Kontrolle benötigen.

Viel Glück, -Scott

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top