web-dev-qa-db-fra.com

Exemple d'utilisation de Android avec des vues au lieu d'activités?

Le tutoriel Android Développeurs TabWidget dit ce qui suit:

"Vous pouvez implémenter le contenu de vos onglets de deux manières: utilisez les onglets pour échanger des vues au sein d'une même activité, ou utilisez les onglets pour basculer entre des activités entièrement distinctes."

Le didacticiel continue pour montrer comment vous pouvez utiliser des onglets avec des activités distinctes. Je n'ai pas pu trouver d'exemple d'utilisation d'onglets avec différentes vues dans la même activité. Je préfère ne pas réinventer cette roue particulière, alors j'espère que quelqu'un ici sait comment cela se fait et peut me donner des indices. Merci!

46
David

Je pense que dans la méthode .setContent de chaque onglet que vous passez dans la vue que vous souhaitez utiliser:

TabHost.TabSpec spec1 = tabs.newTabSpec("tag1");
spec1.setContent(R.id.AnalogClock01);
spec1.setIndicator("Analog Clock");

Voici un exemple que j'ai trouvé il y a quelque temps:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
>

  <TabHost Android:id="@+id/TabHost01" Android:layout_width="wrap_content" Android:layout_height="wrap_content">
    <TabWidget Android:id="@Android:id/tabs" Android:layout_width="wrap_content" Android:layout_height="wrap_content" />
    <FrameLayout Android:id="@Android:id/tabcontent" Android:layout_width="wrap_content" Android:layout_height="wrap_content" Android:paddingTop="65px">
      <AnalogClock Android:id="@+id/AnalogClock01" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></AnalogClock>
      <DigitalClock Android:text="DigitalClock01" Android:id="@+id/DigitalClock01" Android:layout_width="wrap_content" Android:layout_height="wrap_content"></DigitalClock>
    </FrameLayout>
  </TabHost>
</LinearLayout>

Et le code Java pour cet exemple est le suivant:

import Android.app.Activity;
import Android.os.Bundle;
import Android.widget.TabHost;

public class tabexample extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        TabHost tabs = (TabHost)findViewById(R.id.TabHost01);

        tabs.setup();

        TabHost.TabSpec spec1 = tabs.newTabSpec("tag1");

        spec1.setContent(R.id.AnalogClock01);
        spec1.setIndicator("Analog Clock");

        tabs.addTab(spec1);

        TabHost.TabSpec spec2 = tabs.newTabSpec("tag2");
        spec2.setContent(R.id.DigitalClock01);
        spec2.setIndicator("Digital Clock");

        tabs.addTab(spec2);
    }
}
40
ninjasense

J'ai utilisé celui-ci et c'était bien pour moi http://www.codeproject.com/Articles/107693/Tabbed-Applications-in-Android

4
Islam A. Hassan