Tots Posté(e) 24 février 2011 Share Posté(e) 24 février 2011 Bonjour a toutes et a tous, Je suis en train de développer ma première application sous Andoid et je suis confronté a un problème que je n'arrive pas a gérer. Je vous explique : J'ai deux onglets qui contiennent chacun une listview (onglet 1 contient listview 1, onglet 2 contient listview 2). Lorsque je clique sur un élément de la listview 1, ma classe webbrowser est lancée et affiche une page web dans le tabhost. Je change d'onglet, et je clique sur un élément de la listview 2, ma classe webbrowser est lancée et affiche une autre page web toujours dans le tabhost. lorsque je reviens dans l'onglet 1 (celui de la listview 1), la page web est toujours affichée (jusqu'ici tout va bien!). Mais lorsque j'appuie sur le bouton retour du téléphone (du moins du téléphone émulé), je n'arrive pas a revenir sur la listview 1. J'en déduis donc que Android a fait le ménage dans les activities en mémoire ce qui n'arrange pas mes affaires sniff :(. J'espère ne pas avoir été trop brouillon dans mon explication... Quelqu'un a t il une idée pour pouvoir "ressuciter" l'activity détruite? Merci d'avance Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 24 février 2011 Share Posté(e) 24 février 2011 Le comportement que tu observes est le comportement logique attendu, dans ton cas. En effet, lorsqu'une tu as une TabActivity dans une application, seule celle-ci participe à l'historique de navigation des Activities, ses sous-Activities (correspondant aux onglets) n'y participent pas. Dans ton cas, le bouton Retour, quelque soit l'onglet sur lequel tu te trouves, a pour effet de fermer la TabActivity et de revenir à la précédente (ou de quitter l'appli si ta TabActivity est la première) Il aurait fallu que tu lances ta WebView en tant que Activity indépendante pour que tu puisses la quitter par retour, mais dans ce cas, elle aurait masqué la TabActivity, et tu ne pourrais donc plus changer d'onglet sans avoir quitté au préalable l'Activity WebView. En fait, ce que tu veux faire pourrait plutot se faire via un changement de View de l'Activity correspondant à l'onglet (remplacer la view contenant la ListView par une view contenant la WebView), avec un mécanisme (un Button dans la view WebView par ex) pour revenir à la ListView. Mais tu ne pourras pas le faire avec le bouton physique retour. Ou alors, tu fais tout à la main (gestion des onglets, du retour, ...) mais tu auras une appli qui ne répond plus au standard de facto des IHM des applis Android Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tots Posté(e) 24 février 2011 Auteur Share Posté(e) 24 février 2011 Bonsoir chpil, Je vais essayer la méthode que tu m'indiques. Je te dirai ce qu'il en est dès que j'aurais modifié mon code et testé. Merci! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tots Posté(e) 25 février 2011 Auteur Share Posté(e) 25 février 2011 Ça marche parfaitement. Merci pour tes conseils ;) Lien vers le commentaire Partager sur d’autres sites More sharing options...
chpil Posté(e) 25 février 2011 Share Posté(e) 25 février 2011 Et quelle solution as-tu pris (car j'en indique plusieurs ;) ) ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Tots Posté(e) 25 février 2011 Auteur Share Posté(e) 25 février 2011 En fait j'ai tout simplement déclaré une webview cachée dans le fichier XML ou ma listview est définie. Lorsque je clique sur un des éléments de ma listview, elle se cache pour rendre visible la webview et y charger son contenu. Cette méthode m'a paru être celle qui était la plus facile a implémenter d'où mon choix. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Recommended Posts
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.