Je veux créer un custom adapter
pour ma vue de liste. Y a-t-il un article qui peut m'expliquer comment en créer un et expliquer comment cela fonctionne?
217
Je veux créer un custom adapter
pour ma vue de liste. Y a-t-il un article qui peut m'expliquer comment en créer un et expliquer comment cela fonctionne?
Réponses:
C'est une classe que j'avais utilisée pour mon projet. Vous devez avoir une collection de vos articles que vous souhaitez afficher, dans mon cas, c'est
<Item>
. Vous devez remplacer laView getView(int position, View convertView, ViewGroup parent)
méthode.R.layout.itemlistrow
définit la ligne duListView
.Dans le
MainActivity
définirListView
comme ça,la source
Je sais que cela a déjà été répondu ... mais je voulais donner un exemple plus complet.
Dans mon exemple, le
ListActivity
qui affichera notre coutumeListView
est appeléOptionsActivity
, car dans mon projet, celaActivity
va afficher les différentes options que mon utilisateur peut définir pour contrôler mon application. Il existe deux types d'élément de liste, un type d'élément de liste a juste unTextView
et le deuxième type d'élément de liste a juste unButton
. Vous pouvez mettre les widgets que vous aimez dans chaque type d'élément de liste, mais j'ai gardé cet exemple simple.La
getItemView()
méthode vérifie quels éléments de liste doivent être de type 1 ou de type 2. Selon mes entrées statiques que j'ai définies en haut, les 5 premiers éléments de liste seront de type 1 et les 5 derniers éléments de liste seront de type 2 Donc, si vous compilez et exécutez ceci, vous aurez unListView
qui a cinq éléments qui contiennent juste unButton
, puis cinq éléments qui contiennent juste unTextView
.Vous trouverez ci-dessous le
Activity
code, le fichier xml d'activité et un fichier xml pour chaque type d'élément de liste.OptionsActivity.java:
activity_options.xml:
list_item_type_1.xml:
list_item_type2.xml:
la source
Ce code est facile à comprendre.
three_horizontal_text_views_layout.xml
ThreeStrings.java
ThreeHorizontalTextViewsAdapter.java
main_layout.xml
MainActivity.java
la source
ThreeHorizontalTextViewsAdapter.java
. Est-ce la même chose que le resteActivities
Google a un exemple appelé EfficientAdapter, qui à mon avis est le meilleur exemple simple de la façon d'implémenter des adaptateurs personnalisés. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html @CommonsWare a écrit une bonne explication des modèles utilisés dans l'exemple ci-dessus http: // commonsware.com/Android/excerpt.pdf
la source
Vous pouvez jeter un œil à cet exemple dans l'ApiDemos officiel. Il montre comment l'étendre
BaseAdapter
et l'appliquer à aListView
. Après cela, regardez simplement la référenceBaseAdapter
et essayez de comprendre ce que fait chaque méthode (y compris les méthodes héritées) et quand / comment l'utiliser.De plus, Google est votre ami :).
la source
vérifiez ce lien , en toute simplicité via le
convertView
, nous pouvons obtenir la mise en page d'une ligne qui sera affichée en listview (qui est leparentView
).en utilisant la position, vous pouvez obtenir les objets du
List<Item>
.après cela, nous devrons définir les détails souhaités de l'objet sur les widgets de formulaire identifiés.
il retournera alors la vue construite qui sera attachée au
parentView
(qui est unListView
/GridView
).la source
Voici la marche à suivre complète pour créer un adaptateur personnalisé pour l'affichage de liste étape par étape -
https://www.caveofprogramming.com/guest-posts/custom-listview-with-imageview-and-textview-in-android.html
la source
Modèle de données
Adaptateur de baie
Activité principale
row_item.xml
la source
Un exemple plus compact d'un adaptateur personnalisé (en utilisant le tableau de liste comme mes données):
Et voici comment l'utiliser:
la source
BaseAdapter
est le meilleur adaptateur personnalisé pour listview.et il a de nombreuses fonctions telles que
getCount()
,getView()
etc.la source
C'est très simple.
Source: Tutoriel Android ListView personnalisé
la source
la source
la source