ArrayAdapter dans android pour créer listview simple
J'ai essayé de créer un Activity
dans Android, Cette Activité ne contient qu'un ListView
rien d'autre.
Que je sais pour remplir la liste, nous devons utiliser un ArrayAdapter
.
Afin de comprendre les ArrayAdapter j'ai lu le lien suivant:
http://developer.android.com/reference/android/widget/ArrayAdapter.html
Encore, mais je suis incapable de le comprendre clairement!
L'un des plus gros doute, c'est pourquoi le constructeur a besoin d'un TextView
id de ressource alors que mon activité n'est pas d'avoir tout TextViews ce que j'aurais à donner?
Je ne dis pas que c'est le seul constructeur, c'est juste que je ne suis pas en mesure de comprendre la logique derrière elle.
Afin de créer une listview simple j'ai aussi fait référence au lien suivant:
ListView Simple à l'aide de ArrayAdapter exemple.
Mais encore une fois mon principal doute est pourquoi il a besoin d'un TextView id de ressource?
Si quelqu'un peut l'expliquer avec un exemple ça sera très utile.
EDIT:
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, values);
Vous devez vous connecter pour publier un commentaire.
ArrayAdapter utilise un TextView pour afficher chaque élément à l'intérieur. En coulisses, il utilise le
toString()
méthode de chaque objet qu'il détient et les affiche dans le TextView. ArrayAdapter a un certain nombre de constructeurs qui peut être utilisé et celui que vous avez utilisé dans votre exemple:Par défaut, ArrayAdapter utilise la valeur par défaut TextView pour afficher chaque élément. Mais si vous le souhaitez, vous pouvez créer votre propre TextView et de mettre en œuvre une conception complexe que vous le souhaitez en étendant le TextView classe. Ce serait aller dans la mise en page de votre utilisation. Vous pourriez faire référence à cet dans le textViewResourceId champ de lier les objets de ce point de vue au lieu de la valeur par défaut.
Pour votre utilisation, je vous suggère d'utiliser le constructeur:
Dans votre cas, ce serait:
et il doit être fine. Cela permettra de lier chaque chaîne de la valeur par défaut TextView affichage clair et simple fond blanc.
Donc, pour répondre à votre question, vous n'avez pas à utiliser l'textViewResourceId.
Regarder le constructeur et les params.
android.R.id.text1
fait référence à l'id de texte dans android de ressources. Si vous n'avez pas besoin de le un dans votre activité.Voici la liste complète
http://developer.android.com/reference/android/R.id.html
this
fait référence au contexte d'activitéandroid.R.layout.simple_list_item_1
simple_list_item_1 est la mise en page dans android.R.de mise en page.android.R.id.text1
se réfère à l'android id de ressource.values
est un tableau de chaînes à partir du lien que vous avez fournihttp://developer.android.com/reference/android/R.layout.html
Ici, la ressource est-à-dire 'id' de la Disposition que vous utilisez, tandis que l'instanciation de la vue.
Maintenant, cette disposition présente de nombreux enfants de vues avec leurs propres codes. Donc,
textViewResourceId
indique enfant avis que nous avons besoin pour remplir avec les données.Je suis aussi nouvelle pour Android , donc j'ai peut-être tort. Mais selon ma compréhension
pendant l'utilisation de ce pour listview création 2e argument est la disposition des éléments de la liste.
Un réseau est constitué de plusieurs points de vue (affichage de l'image,affichage de texte, etc). Avec le 3e argument que vous spécifiez dans la vue ou la textview vous voulez que le texte soit affiché.
Le TextView id de ressource dont elle a besoin est pour un TextView fichier de mise en page, afin de ne pas être dans la même activité.
Vous pouvez le créer en allant dans Fichier > Nouveau > XML > XML Fichier de Mise en page et entrez le type de widget, qui est 'TextView' dans la balise racine du champ.
Source: https://www.kompulsa.com/the-simplest-way-to-implement-an-android-listview/
Vous n'avez pas besoin d'utiliser des id pour textview. Vous pouvez en apprendre plus à partir de android arrayadapter. Le code ci-dessous initialise le arrayadapter.
Pour votre question la réponse est
android.R.id.text1
est de type int: id de L'TextView dans la mise en page de ressources pour être rempli.ArrayAdapter a donc de nombreux constructeurs avec différents nombre d'arguments
Je suis en citer quelques-unes
Maintenant vous pouvez comprendre chaque et chaque constructeur est différente, et ils ont utilisé différentes de la liste d'arguments.
Et la réponse est simple, vous pouvez utiliser ArrayAdapter avec affichage de texte à l'intérieur d'une cible de fichier xml ou sans. Il n'a pas d'importance. Et vous avez pas besoin de spécifier le texte à afficher id, vous pouvez l'utiliser sans. Mais vous devrez peut-être aller avec un peu d'avance option avec votre simple affichage de la liste vous devez aller avec un affichage de texte.!
Ici l'exemple d'échantillon
C'est aussi un code valide, vous pouvez l'utiliser avec beaucoup plus clair.
Si vous avez plus d'un point de vue dans le fichier de layout
android.R.layout.simple_list_item_1
, alors vous aurez à passer le troisième argumentandroid.R.id.text1
pour spécifier le point de vue qui doit être rempli d'éléments du tableau (valeurs). Mais si vous avez juste un point de vue dans votre fichier de mise en page, il n'est pas nécessaire de spécifier le troisième argument.