2010-05-02 13 views
2

Je souhaite configurer un navigateur de type menu pour mon application.Comment utiliser un ListView et un ViewFlipper pour naviguer dans une application Android?

Il y a un listView dans la page principale et il contient deux éléments, cliquez sur chacun affichera sa vue enfant avec ViewFlipper, et si l'utilisateur a cliqué sur le bouton précédent, il retournera à la page d'accueil.

La question est de savoir comment faire, je ne peux utiliser ViewFlipper que pour passer à l'écran suivant ou à l'écran précédent, comment gérer ces vues enfants ici? Comment les mettre dans mon fichier XML de mise en page?

Répondre

3

Voici une psudo-manière de le faire. // Dans OnCreate, ajoutez un écouteur de clic à votre listview pour que la vue passe à la vue suivante.

viewflipper = (ViewFlipper) findViewById(R.id.viewflipper); 
listview = (ListView) findViewById(R.id.listview); 


listview.setOnItemClickListener(new OnItemClickListener(){ 
    public void onItemClick(AdapterView<?> a, View v, int position, long id) { 
    viewflipper.showNext(); 

}); 

// Remplace l'onKeyDown de votre compte Activty pour gérer le clic arrière.

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     if(viewflipper.getVisibleChild() != 0){ 
      viewflipper.showPrevious(); 
      return true; 
     } 
    } 
    return super.onKeyDown(keyCode, event); 
} 

// xml pour un viewflipper Vith ListView comme "firstpage" et un simple textview comme la "deuxième page"

<ViewFlipper android:id="@+id/viewflipper" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     > 
     <ListView android:id="@+id/listview" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
     /> 
     <TextView android:id="@+id/secondview" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:text="This is the second view" 
     /> 
</ViewFlipper> 
+2

Cet exemple particulier vous un lien vers est un peu vieux (Août 2008) , pour ne pas mentionner arraché de l'article AndroidGuys d'origine. Voici les liens vers les deux exemples de ce post qui ont été tenus à jour: http://github.com/commonsguy/cw-android/tree/master/Fancy/Flipper1/ http://github.com/commonsguy/ cw-android/tree/master/Fantaisie/Flipper2/ – CommonsWare

+0

Merci pour vos réponses. Mais ce dont j'ai besoin est un peu complexe. Parce que la navigation n'est pas toujours linéaire, par exemple HOME-> A | B | C -> si A est sélectionné -> a1 | a2 |, si B est sélectionné -> b1 | b2. Si j'ai des vues A | B | C | a1 | a2 | b1 | b2 toutes prédéfinies, comment puis-je les mettre dans ViewFlipper, ou si certaines d'entre elles comme a2, b1 sont créées dynamiquement en récupérant des données sur Internet, que peut-on faire? Je fais alors? – virsir

+0

Si je comprends bien, vous pouvez ajouter une liste de 2 vues au viewflipper. La première vue de liste montrant A, B, C et lorsque vous cliquez sur l'un des bascules vers la deuxième liste avec ses sous-éléments a1, a2, a3 ... Si vous cliquez sur B vous pouvez utiliser la même liste pour afficher b1, b2 a été utilisé pour a1, a2, a3 etc ... –