2010-10-13 3 views
0

Je suis nouveau à la programmation Android et je voudrais de l'aide. J'ai le code suivant:Double lignes dans une liste avec ArrayAdapter (Android)

Object[] list_cities = parsedData.getCityname().toArray(); 
      Object[] list_countries = parsedData.getCountryname().toArray(); 

      // Display the available locations 
      list_search.setAdapter(new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_2, android.R.id.text1, list_cities)); 
      list_search.setAdapter(new ArrayAdapter<Object>(this, android.R.layout.simple_list_item_2, android.R.id.text2, list_countries)); 

Je voudrais afficher une double rangée pour chaque entrée dans la liste (ville et pays), mais je n'ai pas de chance. Avec le code ci-dessus, je ne vois que les pays mais pas les villes. Est-il possible d'ajouter les deux adaptateurs à list_search afin que je puisse voir toutes les données?

Merci à tous pour vos réponses !!

Répondre

2
  1. Créez un objet conteneur personnalisé, peut-être CountryCityLocation, avec quelques chaînes pour le nom du pays et de la ville.
  2. Créez un tableau de ces conteneurs et remplissez-le avec vos informations.
  3. Créez un ArrayAdapter personnalisé, peut-être CountryCityAdapter, appliquez le tableau à l'adaptateur personnalisé et alimentez-le à getListView.setAdapter. Remplacez la méthode getView de ArrayAdapter pour appliquer vos chaînes de noms à TextViews dans votre vue de ligne de liste personnalisée.

EDIT - lien tutoriel mort supprimé

lien
+1

ne vous envoie pas à whyandroid.com/android/182-fancy-listviews-part-one.html~~V~~singular~~2nd mais bonne liste des étapes de réponse. –

+0

Merci Dandre, j'ai enlevé le lien mort. – Josh

0

Cette link peut aider. Il montre un listView avec des lignes multi-lignées implémentées en utilisant HashMaps.

0

Vous ne pouvez lier qu'un seul adaptateur à ListView. Si vous souhaitez combiner des adaptateurs, vous devez implémenter un adaptateur personnalisé. Par exemple, vous pouvez hériter de SimpleAdapter, fournir deux adaptateurs simples dans le constructeur et combiner les données dans la méthode getItem.