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 :

Envoyer extras dans un TabHost


Sujet :

Android

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2011
    Messages : 12
    Points : 11
    Points
    11
    Par défaut Envoyer extras dans un TabHost
    Bonjour, je suis confronté à une simple, mais non moins sournoise erreur...

    Dans un TabHost, lorsque je crée mes onglets, je voudrais appeler toujours la même activité mais en envoyant des extras.
    Dans l'activité appellée, je devrai récupéré l'extra, et en fonction de sa valeur, l'activité se comporterai différemment.

    Donc, mon erreur est que je n'arrive pas à récupérer les extras... J'ai besoin d'envoyer un objet complexe, comme cela ne marche pas, j'ai d'abord essayé d'envoyer un simple INT. Toujours rien, on dirait qu'on ne peut pas envoyer d'extras dans les intent qu'on passe en paramètres du setContent() du setIndicator() du newTabSpec().

    En tout cas, voilà mon code (quelque fois que j'aurai fait une bourde):
    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
    for(NavService unService : _listeWSDL)
    			{
    				if(unService.getVisible())
    				{
    					int resID = getResources().getIdentifier("ic_"+unService.getPicture(), "drawable", "com.eskape.naviway"); //icône de l'onglet
    					intent = new Intent().setClass(this,PageGenerator.class);
     
    					if(i_webService == 2) // 2 = onglet par défaut
    					{
    						reponse = _soapRequest.SendSoapRequest(unService.getURL().toLowerCase(), unService.getURL(), "ReadMultiple", _settings);
    						ArrayList<NavType> listNavType = ps.parser(reponse);
    						unService.setNavType(listNavType);
    						intent.putExtra("id", _listeWSDL.indexOf(unService));
    						reponse = null;
    					}
    					spec = tabHost.newTabSpec(unService.getSname()).setIndicator(unService.getSname(),res.getDrawable(resID)).setContent(intent);
    					tabHost.addTab(spec);
    					i_webService++;	
    				}
    				else
    				{
    					//Le WSDL n'est pas disponible (on le notifie dans le LOG)
    					Log.e("SERVICE (invisible)", unService.getURL());
    				}
    			}
     
    		} catch (IOException e) {
    			Log.e("MAIN", "ERREUR IO");
    			e.printStackTrace();
    		} catch (Exception e) {
    			Log.e("MAIN", "ERREUR E");
    			e.printStackTrace();
    		}
    	    //Onglet par défault
    	    tabHost.setCurrentTab(2);
        }
    Et PageGenerator:
    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
    public void onCreate(Bundle savedInstanceState)
    	{
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.about);
     
    		Intent intent = getIntent();
    		int _id = 0;
    		if(intent.getExtras() != null)
    		{
    			_id = intent.getExtras().getInt("id");
    		}
    		else
    		{
    			Log.e("EXTRA", "AUCUN EXTRAS");
    		}
    		NavService ns = MainView._listeWSDL.get(_id);
    		Log.e("NOM:", ""+ns.getName());
     
    	}

  2. #2
    Expert éminent

    Avatar de Feanorin
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    4 589
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 4 589
    Points : 9 149
    Points
    9 149
    Par défaut
    Bonjour,

    Il faut passer par le parent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    getParent().getIntent().getExtra("id", 0);
    Et comme cela pas besoin de passer par les Intent de tes fils mais par l'intent de ta TabActivity .

    Par contre tu seras obliger de différencier les Activity .
    Responsable Android de Developpez.com (Twitter et Facebook)
    Besoin d"un article/tutoriel/cours sur Android, consulter la page cours
    N'hésitez pas à consulter la FAQ Android et à poser vos questions sur les forums d'entraide mobile d'Android.

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/09/2007, 20h23
  2. [AJAX] Envoyer des & dans des variables
    Par kivan666 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 29/05/2007, 20h10
  3. Envoyer requete dans plusieurs fichier selon champ
    Par mat_lefebvre dans le forum Requêtes et SQL.
    Réponses: 10
    Dernier message: 05/03/2007, 09h30
  4. envoyer null dans un Query.Param ?
    Par KRis dans le forum Bases de données
    Réponses: 10
    Dernier message: 13/04/2006, 16h54
  5. [VB.NET] Envoyer TreeNodes dans une socket
    Par Aspic dans le forum VB.NET
    Réponses: 10
    Dernier message: 18/02/2006, 16h29

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