2010-07-19 5 views
0

J'ai créé un customAdapter qui accepte une ArrayList. La ArrayList contient un titre, puis un lien.Comment afficher toutes les autres chaînes dans View getView()?

Par exemple: [Title1, http://mylink1.com/, Title2, - http://mylink2.com/-, Titre3, - http://mylink3.com/- ...] ** J'ai mis là hypens à cause du filtre anti-spam "Stackoverflow". Je veux afficher le titre et avoir l'écouteur sur le clic pour avoir le lien. J'ai du mal à trouver un moyen de le faire. Toute aide serait grandement appréciée! :)

Répondre

1

ArrayList doit contenir des objets Lien.

Ex.

class Link { 
    String title; 
    String url; 
} 

En getView de votre adaptateur que vous utilisez le titre pour remplir le TextView, et dans le onClick sur onSelect ou autre, vous auriez l'objet de lien avec le titre et l'URL.

Ex.

public View getView(int index, View convertView, ViewGroup parent) { 
    TextView tv = (TextView) convertView; 
    Link link = list.get(index); 
    tv.setText(link.getTitle()); 
    return tv; 
} 

public void onItemClick(ViewGroup parent, View view, int position, long id) { 
    Link link = list.get(position); 
    String uri = link.getUri(); 
    // do something interesting. 
} 

Et si votre adaptateur étend ArrayAdapter et vous ne surchargez pas getView(), la méthode toString() de Link doit retourner le champ du titre.

+0

Vous pouvez également utiliser SimpleAdapter pour éviter d'avoir à implémenter manuellement la fonction getView. Voir http://www.vbsteven.be/blog/using-the-simpleadapter-with-a-listview-in-android/ pour un exemple. –

+0

Merci, BrennaSoft & Mayra! – daveomcd

Questions connexes