IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Changement contenu TabHost


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Points : 40
    Points
    40
    Par défaut Changement contenu TabHost
    Bonjour,
    Ayant du mal à formuler courtement mon problème, je n'arrive pas à trouver d'éventuelles solutions sur internet.

    Pour faire court, j'ai dans mon activité, entre autre, une tabhost contenant 4 onglets et divers autres layouts.

    L'activité doit permettre à l'utilisateur de changer le contenu des onglets lorsqu'il sélectionne un bouton. Par exemple, s'il appuie sur le bouton "voiture", les onglets (vidéo, html et Unity) doivent afficher des informations relatives à la voiture. S'il clique sur le bouton "camion", les onglets doivent se mettre à jour et leurs contenus doivent être changés.

    Actuellement, mon code appelé à chaque pression de bouton est celui-ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    public void createTab() {
     
    		//TODO PIERRE : définisse l'information à transmettre à Unity. 
     
    		String htmlFile = currentAction.getHtmlFile();
    		String videoFile = currentAction.getVideoFile();
    		String poste3DFile = currentAction.getUnityFile();
    		String element3DFile = currentAction.getImageFile();
     
    		tabHost = getTabHost();
    		// tabHost.setup();
    		tabHost.clearAllTabs();
     
     
    		Intent intent;
    		if (!element3DFile.equals("null")) {
    			intent = new Intent(this, ImageTabActivity.class);
    			intent.putExtra("valeur", element3DFile);
    			tabSpec = tabHost
    					.newTabSpec("un")
    					.setIndicator("Poste 3D",
    							getResources().getDrawable(R.drawable.home))
    					.setContent(intent);
    			tabHost.addTab(tabSpec);
    		}
     
    		if (!poste3DFile.equals("null")) {
    			intent = new Intent(this,  UnityTabActivity.class);
    			intent.putExtra("valeur", poste3DFile);
    			tabSpec = tabHost.newTabSpec("deux").setIndicator("Element 3D")
    					.setContent(intent);
    			tabHost.addTab(tabSpec);
    		}
     
    		if (!videoFile.equals("null")) {
    			intent = new Intent(this, VideoTabActivity.class);
    			intent.putExtra("valeur", videoFile);
    			tabSpec = tabHost.newTabSpec("trois").setIndicator("Video")
    					.setContent(intent);
    			tabHost.addTab(tabSpec);
    		}
     
    		if (!htmlFile.equals("null")) {
    			intent = new Intent(this, HTMLTabActivity.class);
    			intent.putExtra("valeur", htmlFile);
    			tabSpec = tabHost.newTabSpec("quatre").setIndicator("Description")
    					.setContent(intent);
    			tabHost.addTab(tabSpec);
    		}
    		getTabHost().invalidate();
    	}
    Le code s'adapte correctement au contenu (s'il n'y a pas de vidéo à diffuser, l'onglet correspondant n'est pas crée), mais le contenu de ceux-ci ne se rafraichit pas correctement (notamment pour la vidéo et l'html).


    Est-il possible de faire ce genre de chose?

    Je précise, au cas où, que j'utilise une tabActivity (pas le temps de me former aux fragments), que je dispose bien d'un layout et d'une activité par onglet.

    Merci !

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2010
    Messages
    39
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 39
    Points : 40
    Points
    40
    Par défaut
    Apparemment, la solution serait d'ajouter un flat à l'intent de chaque onglet que l'on souhaite pouvoir mettre à jour par la suite.

    Le code est donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    if (!videoFile.equals("null")) {
    			intent = new Intent(this, VideoTabActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    			intent.putExtra("valeur", videoFile);
    			tabSpec = tabHost.newTabSpec("trois")
    					.setIndicator("Video")
    					.setContent(intent);
    			tabHost.addTab(tabSpec);
    		}
    Je clos le topic dès que je suis certain que ça marche.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AJAX] changement contenu avec slider
    Par zecka dans le forum AJAX
    Réponses: 0
    Dernier message: 08/02/2012, 14h57
  2. [AC-2003] Changement contenu d'un lien hypertexte
    Par riri78 dans le forum VBA Access
    Réponses: 8
    Dernier message: 11/10/2010, 15h50
  3. Changement contenu d’index
    Par badrel dans le forum Référencement
    Réponses: 4
    Dernier message: 16/01/2008, 21h03
  4. Changement contenu variable non desiré
    Par adurandet dans le forum C++
    Réponses: 10
    Dernier message: 29/10/2007, 09h46
  5. [javascript] changement contenu
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 07/04/2006, 18h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo