Aller au contenu

Activities dans TabHost


Tots

Recommended Posts

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

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...