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 :

Récupérer en mémoire un élément d'un TextView


Sujet :

Composants graphiques Android

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 97
    Points : 44
    Points
    44
    Par défaut Récupérer en mémoire un élément d'un TextView
    Bonjour,

    J'ai un listview peuplé avec un simpleadapter

    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
     
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
     
     
        <ListView android:id="@id/android:list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#D5EFE6"
        android:layout_weight="2"
        android:drawSelectorOnTop="false"
        android:fastScrollEnabled="True"
        android:cacheColorHint="#00000000"
    	>
        </ListView>
        <TextView android:id="@id/android:empty"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="#D5EFE6"
         android:textColor="#000000"
        android:text="Pas de données pour cette période."
        />
    </LinearLayout>
    chaque élément contient en fait 4 textview.

    j'aimerais, sur clic de l'élement de la liste récupérer le texte de l'élement 2 par exemple.

    alors j'ai essayé de créer cet évenement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     	    ListView lv1 = (ListView)findViewById(id.list);
     	    lv1.setAdapter(adapter);
            lv1.setOnItemClickListener( new OnItemClickListener()
            {
     
                @Override
                public void onItemClick( AdapterView lv1, View view,
                    int pos, long id )
                {            	
                    TextView textView = (TextView)lv1.getItemAtPosition(pos);
                    textView.getText();
                }
            });
    mais malgré le fait que, au début, il prenne bien en compte la pos et l'id du clic et que le textview est bien non null le gettext fait planter.

    je préciser que je suis débutant, un peu d'indulgence svp...

    merci

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 144
    Points : 118
    Points
    118
    Par défaut
    Est-ce que tu peux mettre le code au moment où tu instancie ton adapter ?

    Si l'objet que tu passe en paramètre dans ton adapter ne redéfinie pas la méthode toString(), je pense que c'est normal que tu ne récupère null avec getText().

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 97
    Points : 44
    Points
    44
    Par défaut
    alors l'adapter est instancié comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SimpleAdapter adapter = new SimpleAdapter(
           	    this,
           	    mylist,
           	 R.layout.custom_row_view,
           	    new String[] {"monchamp1","monchamp2","monchamp3","monchamp4"},
           	    new int[] {R.id.text1,R.id.text2, R.id.text3, R.id.text4}
     
           	    );

  4. #4
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2011
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2011
    Messages : 144
    Points : 118
    Points
    118
    Par défaut
    Alors, déjà, il y a un petit problème :

    Dans ton OnItemClickListener, tu utilise correctement la méthode getItemAtPosition(pos).
    Par contre, tu cast en TextView, et c'est la le problème.

    Dans ton Adapter, les données que tu lui donne sont un tableau de String, et d'entier; à aucun moment ce n'est un TextView.


    Essaye peut-être de récupérer un entier, qui devrait correspondre au R.id.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 97
    Points : 44
    Points
    44
    Par défaut
    Citation Envoyé par gilloddon Voir le message
    Alors, déjà, il y a un petit problème :

    Dans ton OnItemClickListener, tu utilise correctement la méthode getItemAtPosition(pos).
    Par contre, tu cast en TextView, et c'est la le problème.

    Dans ton Adapter, les données que tu lui donne sont un tableau de String, et d'entier; à aucun moment ce n'est un TextView.


    Essaye peut-être de récupérer un entier, qui devrait correspondre au R.id.

    merci bcp, j'ai trouvé grâce à toi en cherchant sur le net. j'avais une hashmap en amont.

    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
     
     	    final ListView lv1 = (ListView)findViewById(id.list);
     	    lv1.setAdapter(adapter);
            lv1.setOnItemClickListener( new OnItemClickListener()
            {
     
                @Override
                public void onItemClick( AdapterView <?>parent, View view,
                    int pos, long id )
                {            	
                   HashMap<String,String> map = (HashMap<String, String>)lv1.getAdapter().getItem(pos);
                   String resultat = map.get("mon_champ_dans_la_hash_map");
                   AlertDialog.Builder adb = new AlertDialog.Builder(ResultatsHisto.this);
                   adb.setTitle("Montitre");
                   adb.setMessage(resultat);
                   adb.setPositiveButton("Ok", null);
                   adb.show();
                }
            });

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

Discussions similaires

  1. Récupérer état mémoire, envoie ftp et service
    Par seb974 dans le forum VB 6 et antérieur
    Réponses: 23
    Dernier message: 13/09/2007, 09h31
  2. Réponses: 2
    Dernier message: 30/08/2007, 09h12
  3. Garder en mémoire les éléments ajoutés.
    Par doudine dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/05/2007, 18h18
  4. [MySQL] Comment récupérer le nombre d'élément présent dans une table
    Par TrX314 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 09/04/2007, 21h20
  5. [VBA-E] Récupérer le nombre d'élément sélectionné d'une Listbox ?
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/01/2007, 17h31

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