Chcę utworzyć custom adapter
widok mojej listy. Czy jest jakiś artykuł, który może poprowadzić mnie przez proces jego tworzenia, a także wyjaśnić, jak to działa?
android
listview
android-tablelayout
custom-adapter
Harsha MV
źródło
źródło
Odpowiedzi:
To klasa, z której korzystałem w swoim projekcie. Musisz mieć kolekcję swoich przedmiotów, które chcesz wyświetlić, w moim przypadku jest to
<Item>
. Musisz zastąpićView getView(int position, View convertView, ViewGroup parent)
metodę.R.layout.itemlistrow
określa wierszListView
.W takiej
MainActivity
definicjiListView
,źródło
Wiem, że już na nie odpowiedziano ... ale chciałem podać pełniejszy przykład.
W moim przykładzie nazywa się ten
ListActivity
, który wyświetla nasz niestandardowy , ponieważ w moim projekcie będą wyświetlać różne opcje, które mój użytkownik może ustawić, aby kontrolować moją aplikację. Istnieją dwa typy elementów listy, jeden typ elementu listy ma tylko, a drugi typ elementu listy ma tylko . Możesz umieścić dowolne widżety w każdym typie elementu listy, ale ten przykład był prosty.ListView
OptionsActivity
Activity
TextView
Button
Te
getItemView()
kontrole metoda, aby zobaczyć, które przedmioty lista powinna być typu 1 lub typu 2. Według moich int statycznych zdefiniowałem się szczyt, pierwsze 5 lista przedmiotów będzie element listy typ 1, a ostatnie 5 lista przedmiotów będzie lista elementów typu 2 Więc jeśli to skompilujesz i uruchomisz, będziesz miałListView
pięć elementów, które zawierają tylkoButton
, a następnie pięć elementów, które tylko zawierająTextView
.Poniżej znajduje się
Activity
kod, plik xml aktywności i plik xml dla każdego typu elementu listy.OptionsActivity.java:
activity_options.xml:
list_item_type_1.xml:
list_item_type2.xml:
źródło
Ten kod jest łatwy do zrozumienia.
three_horizontal_text_views_layout.xml
ThreeStrings.java
ThreeHorizontalTextViewsAdapter.java
main_layout.xml
MainActivity.java
źródło
ThreeHorizontalTextViewsAdapter.java
. Czy to tak samo, jak pozostanieActivities
Google ma przykład o nazwie EfficientAdapter, który moim zdaniem jest najlepszym prostym przykładem implementacji niestandardowych adapterów. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html @CommonsWare napisał dobre objaśnienie wzorców zastosowanych w powyższym przykładzie http: // commonsware.com/Android/excerpt.pdf
źródło
Możesz obejrzeć tę próbkę w oficjalnym ApiDemos. Pokazuje, jak go rozszerzyć
BaseAdapter
i zastosować doListView
. Następnie spójrz na odnośnikBaseAdapter
i spróbuj zrozumieć, co robi każda metoda (w tym odziedziczone) i kiedy / jak z niej korzystać.Ponadto Google jest twoim przyjacielem :).
źródło
sprawdź ten link , w bardzo prosty sposób za pomocą
convertView
, możemy uzyskać układ wiersza, który będzie wyświetlany w widoku listy (który jestparentView
).za pomocą pozycji możesz zdobyć obiekty
List<Item>
.po tym będziemy musieli ustawić pożądane szczegóły obiektu w określonych widżetach formularzy.
wtedy zwróci skonstruowany widok, który zostanie dołączony do
parentView
(który jestListView
/GridView
).źródło
Oto pełna instrukcja tworzenia niestandardowego adaptera do widoku listy krok po kroku -
https://www.caveofprogramming.com/guest-posts/custom-listview-with-imageview-and-textview-in-android.html
źródło
Model danych
Adapter szyku
Główna aktywność
row_item.xml
źródło
Bardziej kompaktowy przykład niestandardowego adaptera (wykorzystującego tablicę list jako moje dane):
A oto jak go użyć:
źródło
BaseAdapter
jest najlepszym niestandardowym adapterem do przeglądania listy.i ma wiele funkcji, takich jak
getCount()
,getView()
etc.źródło
To bardzo proste.
Źródło: niestandardowy samouczek ListView na Androida
źródło
źródło
źródło