listview avec arraylist,simple adaptateur dans android
J'ai essayer de montrer quelque chose dans listview à l'aide de liste de tableaux et simple adaptateur.
J'ai essayé quelque chose comme ci-dessous, mais dans mon résultat montre les derniers noms de la liste de tableaux.
Qu'est-ce que mon mal je ne peux pas comprendre.
final ListView listView = (ListView) findViewById(R.id.mylist);
ArrayList<HashMap<String, String>> list_of_bookmarks = new ArrayList<HashMap<String, String>>();
HashMap<String, String> b = new HashMap<String, String>();
String[] from = { "php_key","c_key","android_key","hacking_key" };
String[] name_of_bookmarks = { "php","c","android","hacking" };
for(int i=0;i<4;i++)
{
b.put(from[i],name_of_bookmarks[i]);
list_of_bookmarks.add(b);
}
};
int[] to = { R.id.txt1,R.id.txt1,R.id.txt1,R.id.txt1};
SimpleAdapter adapter = new SimpleAdapter(getBaseContext(), list_of_bookmarks, R.layout.list_layout, from, to);
listView.setAdapter(adapter);
Je veux juste montrer "php","c","android","hacking" dans une listview.
Et ce qui devrait être la façon la plus efficace de le faire.Je suis un débutant, donc vous pouvez lui proposer une meilleure façon qui dois-je suivre
Son afficher uniquement la dernière valeur ?
4 fois, la dernière valeur comme "le piratage,hacking,piratage,hacking"
4 fois, la dernière valeur comme "le piratage,hacking,piratage,hacking"
OriginalL'auteur | 2013-09-05
Vous devez vous connecter pour publier un commentaire.
Main.xml
setlanguage.xml
ajouter dans onCreate() de votre fichier d'activité
OriginalL'auteur swati srivastav
Mon conseil pour vous serait de créer une classe qui étend la Carte(ou une sous-classe de celle-ci)
Voici un exemple simple d'un tableau de Chaîne de l'adaptateur.
et l'utilisation est simple il suffit d'utiliser la méthode
.setAdapter();
Ou un autre exemple qui utilise un arrayAdapter:
Ceci est un exemple d'un adaptateur pour un complexe de classe qui a plus de champs plutôt que d'une simple chaîne de caractères. Mais qui peut facilement être modifié pour
ArrayAdapter<String>
puis à partir de là.Toute façon, je pense que c'est toujours plus pratique d'écrire vos cartes personnalisées pour les listviews.
Espérons que cette aide!
OriginalL'auteur Adrian Olar
Vous réutilisez le même point de vue dans votre int[] objet.
int[] to = { R.id.txt1,R.id.txt1,R.id.txt1,R.id.txt1};
On dirait que c'est le traitement de toutes le même objet, chaque fois qu'il ajoute un nouvel élément, il change les précédents.
Afin d'utiliser le
SimpleAdapter
vous devez définir chaque point de vue dans le fichier XML avec des Identifiants différents.int[] to = { R.id.txt1,R.id.txt2,R.id.txt3,R.id.txt4};
La
SimpleAdapter
peut être plus simple en ce qui concerne à la complexité interne, mais ce n'est certainement pas plus simple d'utiliser effectivement. Avec unArrayAdapter
vous pouvez simplement transmettre la liste des éléments et laisser générer des vues automatiquement. Il peut être n'importe quelle taille vous avez besoin qu'il soit tant que vous n'avez pas à court de mémoire. (Voir ci-dessous par exemple)Une fois que vous commencez à travailler avec des adaptateurs personnalisés, je vous recommande fortement de regarder Romain Guy & Adam Powell I/O parler. C'est tout un tas à prendre lors de l'apprentissage, mais ils font un bon travail en expliquant comment
ListViews
travail.Alors que dois-je faire?? @Jon
Utiliser différents textviews pour chaque.
Si vous savez combien vous aurez besoin, vous pouvez simplement les ajouter dans la mise en page XML. De les générer à la volée va vous donner beaucoup plus de souplesse, mais va compliquer les choses un peu.
Je veux juste montrer "php","c","android","hacking" dans une listview.Si elle a 200 élément, puis il est possible de créer 200 textview??
OriginalL'auteur Jon
Essayer celui-ci
De sorte qu'il est possible de montrer dans textveiw
pourquoi devrais-je prendre un autre textview R. id.txt2
Je veux juste montrer "php","c","android","hacking" dans une vue de liste. c'est ça
- Je changer dans mon code voir le code mis à jour
OriginalL'auteur Sunil Kumar
OriginalL'auteur Nikul Vaghani