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

Composants graphiques Android Discussion :

Problème sur ListView pour récupérer le texte d'un item ?


Sujet :

Composants graphiques Android

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Par défaut Problème sur ListView pour récupérer le texte d'un item ?
    Bonjour à tous,

    Je suis débutant en Java et aussi Android.

    Je bloque sur un problème qui me donne des cheveux blanc... :-) J'ai essayer plein de manières en suivant des tutos ici et là mais je n'arrive pas à récupérer le texte d'un item quand je clic dessus.

    Voici comment est déclaré et rempli ma ListView :
    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
    						runOnUiThread(new Runnable()
    						{
    							public void run()
    							{
     
    								if (SlaveAdr_List.isEmpty())
    								{
    									Toast.makeText(global_context, "No slave found ...", Toast.LENGTH_SHORT).show();
    								}
    								else
    								{
    									Toast.makeText(global_context, Integer.toString(SlaveAdr_List.size()) + " slaves was found.", Toast.LENGTH_SHORT).show(); //Affiche le nombre d'elements de la liste dans un TOAST
     
    								}
     
    								adapter_lst_MANAGER_SlaveActive = new ArrayAdapter<String>(global_context,R.layout.row_slaveonline,R.id.txt_Adresse,SlaveAdr_List);
    								lst_MANAGER_SlaveActive.setAdapter(adapter_lst_MANAGER_SlaveActive);
     
    							}
    						});
    Avec SlaveAdr_List un ArrayList<String>.

    Mon click listener :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    		lst_MANAGER_SlaveActive.setOnItemClickListener(new OnItemClickListener() {
     
    			@Override
    			public void onItemClick(AdapterView<?> parent, View view, int position, long id) 
    			{
    				TextView tv = (TextView) view;
     
    				Toast.makeText(global_context,tv.getText(), Toast.LENGTH_SHORT).show();
    			}
     
    		});
    Le truc c'est que tout fonctionne bien quand je fait un Toast avec un text en brut dedans (du type "bonjour" par exemple). Mais lorsque j'essaye de récuperer la valeur du texte de view, mon application crash.

    Avez-vous une petite idée ?

    Je vous remercie grandement !

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    		TextView tv = (TextView) view;
     
    		Toast.makeText(global_context,tv.getText(), Toast.LENGTH_SHORT).show();
    	}
     
    });
    Il faut se servir de la position de ce que tu veux récupérer, quelque chose dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        @Override
          public void onItemClick(AdapterView<?> adapter, View v, int position,
                long arg3) 
          {
                String value = (String)adapter.getItemAtPosition(position); 
          }
    On se sert du troisième paramètre de OnItemClick pour avoir l'index de l'objet dans la listeView.

    Cordialement.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Par défaut Bizarre ?
    Salut,

    Merci pour ta réponses, je vais essayer ça dès que possible mais sans grande conviction car il me semble avoir déjà fait l'essai.

    Par contre chose de bizarre, hier soir j'ai consulter le poste et il y avait une réponse me disant que View view n'était pas une texte view en fait, et le post à disparue ??

    Je n'ai même pas eu le temps de tester :-(

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2014
    Messages : 64
    Par défaut
    Bonjour,

    en fait dans ton code à première vue, ce n'est pas faux ce que tu as fait ; l'erreur doit provenir de ton xml

    Structure de arrayAdapter :
    Si ton xml est simplement de cette forme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="utf-8"?>
    <TextView xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" 
        // autres attributs
    />
    cette structure suffit : new ArrayAdapter<String>(this, R.layout.a_layout_file, this.file) (où R.layout.a_layout_file est le fichier xml ci-dessus)

    Pour un xml plus "compliqué" c'est à dire lorsque ton TextView est dans une autre structure :

    new ArrayAdapter<String>(this, R.layout.a_layout_file, R.id.a_text_view_within_layout, this.file) (où R.id.a_text_view_within_layout, comme indiqué, est le TextView contenu DANS R.layout.a_layout_file )

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Par défaut
    Merci pour toute ces précisions :-)

    Effectivement dans mon XML j'ai un textview dans un linearlayout, donc mon adapter est construit comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    new ArrayAdapter<String>(this, R.layout.a_layout_file, R.id.a_text_view_within_layout, this.file)
    En tout cas, cela fonctionne maintenant, j'ai essayer t'as methode avec getitemposition et ça marche aussi.
    Mais du coup je suis plutot parti sur cette methode la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String Adr_Slave = ((TextView) view.findViewById(R.id.row_txt_Adresse)).getText().toString();
    Et ça marche :-)

    Merci pour ton aide !

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/12/2008, 18h14
  2. Réponses: 2
    Dernier message: 20/03/2007, 14h39
  3. [SimpleXML] Problème sur simpleXML pour ajouter de nouveaux noeuds
    Par Shandler dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 26/02/2006, 14h55
  4. Outil de reverse pour récupérer le texte d'un fichier d'aide
    Par Laurent Dardenne dans le forum Outils
    Réponses: 3
    Dernier message: 06/02/2006, 11h18
  5. problème avec strtok pour récupérer les vides
    Par manikou dans le forum MFC
    Réponses: 4
    Dernier message: 02/06/2005, 21h08

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