gogui63 Posté(e) 8 octobre 2013 Share Posté(e) 8 octobre 2013 (modifié) Bonjour, je n'arrive pas à faire un truc surement tout simple ... J'ai une activity avec une listview et cette listview ne fait que charger d'autres vues (en gros plusieurs textview) mais j'aimerais que quand l'utilisateur appuie sur la touche retour il revienne sur la vue où il y a mes listView (en vérité l'activité déjà en action) et non l'accueil de mon application (l'activity précédente) Comment faire ? if(map.get("numero").equals("1")) { setContentView(R.layout.text1); return; } J'ai essayé diverses manip avec le onbackpressed en gros j'aimerais faire : if(map.get("numero").equals("1")) {setContentView(R.layout.text1); if(onBackPressed()){finish(); }} Modifié 8 octobre 2013 par gogui63 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vbarthel Posté(e) 8 octobre 2013 Share Posté(e) 8 octobre 2013 Je ne suis pas sûr d'avoir compris ton problème, mais as-tu essayé d'override la méthode onBackPressed de ton activité ? http://developer.android.com/reference/android/app/Activity.html#onBackPressed() Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 9 octobre 2013 Share Posté(e) 9 octobre 2013 L'appui sur la touche retourne ferme l'Activity courante. Comme tu ne créé pas d'Activity, mais remplace simplement la vue de l'Activity, c'est normal que tu reviennes vers l'accueil de ton appli. Il serait plus simple (et plus logique) que tu ouvres une nouvelle Activity lorsque tu cliques sur un élément de la ListView. Autrement, comme le suggère Vbarthel, tu peux implémenter la méthode onBackPressed pour intercepter l'appui sur la touche retour, et faire en sorte de réafficher la ListView le cas échéant Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Vbarthel Posté(e) 9 octobre 2013 Share Posté(e) 9 octobre 2013 Si tu ne souhaites pas lancer une autre activité, tu peux également t'orienter vers l'utilisation des fragments, représentant une portion de ta vue: il te suffit d'appeler la méthode addToBackStack lors de la FragmentTransaction pour que le bouton "back" annule la transaction et donc revienne à une vue précédente: http://developer.android.com/reference/android/app/FragmentTransaction.html#addToBackStack(java.lang.String) Le guide sur l'utilisation des fragments: http://developer.android.com/guide/components/fragments.html Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
gogui63 Posté(e) 9 octobre 2013 Auteur Share Posté(e) 9 octobre 2013 (modifié) Je vais , je pense me pencher sur les fragments car je ne trouve pas ça forcément utile de créer une autre activité pour un simple contentView en tout cas merci pour la réactivité ! Et dans le deuxieme cas, si je fais une nouvelle class pour chaque item de ma listview ( ça fait 23 class en plus ) ça ne risque pas d'alourdir mon apk finale ? Modifié 9 octobre 2013 par gogui63 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 9 octobre 2013 Share Posté(e) 9 octobre 2013 En général, on n'a qu'une seule Activity pour tous les items de la ListView, seul le contenu (les données affichées) change en fonction de l'élément sélectionné. Si tu as vraiment besoin d'implémentation d'Activity différentes, alors forcément, oui, ça va (un peu) alourdir ton apk (mais ce sera pareil avec des Fragments). Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Rejoignez la conversation
Vous pouvez poster maintenant et vous enregistrez plus tard. Si vous avez un compte, connectez-vous maintenant pour poster.