2011-05-11 2 views
3

J'ai fait un listView personnalisé qui étend ListActivity et chaque ligne contient 2 textview et un bouton.android ListView ItemClick obtenir le texte de l'enfant

adapter = new SimpleAdapter(this, arraylist, R.layout.simplelistcustom, new String[] { "count","title"}, 
       new int[] {R.id.invisible, R.id.textView11 }); 
     setListAdapter(adapter); 

En cliquant sur la liste Voir ligne, i obtenir l'index de la ligne sélectionnée et en utilisant l'indice i obtenir l'enfant de la ligne

protected void onListItemClick(ListView listView, View view, int position, long id) 
    { 
     super.onListItemClick(listView, view, position, id); 
     String selection = listView.getItemAtPosition(position).toString(); 
    } 

La sortie quand j'affiché dans la « sélection » dans Logcat est

{count=6, title=etywewetr} 

le problème est que je veux séparer le contenu .... Comment cela peut-il possible .... plz aider

thanx à l'avance

+0

dont le contenu que vous souhaitez saparate? –

+0

{count = 6, title = etywewetr} sont deux séparés TextView.Je veux obtenir la valeur du titre et compte séparément –

Répondre

4

La méthode getItemAtPosition vous renvoie un élément de votre paramètre arraylist; vous avez juste besoin de le mouler au bon type. Si l'on suppose votre arraylist est une liste < Carte < String, String >> (que je soupçonne qu'il est):

protected void onListItemClick(ListView listView, View view, int position, long id) 
{ 
    super.onListItemClick(listView, view, position, id); 
    Map<String, String> selection = (Map<String, String>) listView.getItemAtPosition(position); 
    String count = selection.get("count"); 
    String title = selection.get("title"); 
} 
+0

Cela fonctionne ... J'ai utilisé HashMap ... merci –

+0

Très bien, heureux je pourrais aider! –

+1

Merci. Moi aussi, j'ai utilisé votre réponse. – Santhosh

0
static class MyViewHolder extends ViewHolder { 

     public MyViewHolder(TextView t2,TextView t1) {   

      text1 = t1; 
      text2 = t2; 
     } 
     TextView text1; 
     TextView text2; 
    } 
private class MyClickableListAdapter extends ClickableListAdapter { 
     public MyClickableListAdapter(Context context, int viewid, 
       List<MyData> objects) { 
      super(context, viewid, objects); 
      // nothing to do 
     } 

     protected void bindHolder(ViewHolder h) { 

      MyViewHolder mvh = (MyViewHolder) h; 
      MyData mo = (MyData)mvh.data;  
      mvh.text.setText(mo.text); 
      mvh.text1.setText(mo.text1); 
     } 
Questions connexes