Я хочу создать custom adapter
для моего списка. Есть ли какая-нибудь статья, которая может помочь мне понять, как ее создать, а также объяснить, как она работает?
android
listview
android-tablelayout
custom-adapter
Харша М.В.
источник
источник
Ответы:
Это класс, который я использовал для своего проекта. У вас должна быть коллекция ваших предметов, которые вы хотите отобразить, в моем случае это так
<Item>
. Вам нужно переопределитьView getView(int position, View convertView, ViewGroup parent)
метод.R.layout.itemlistrow
определяет строкуListView
.В
MainActivity
определении,ListView
как это,источник
Я знаю, что на это уже ответили ... но я хотел бы привести более полный пример.
В моем примере вызывается объект ,
ListActivity
который будет отображать наш пользовательский интерфейс , потому что в моем проекте будут отображаться различные параметры, которые мой пользователь может установить для управления моим приложением. Существует два типа элементов списка, один тип элемента списка просто имеет, а второй тип элемента списка просто имеет . Вы можете поместить любые виджеты, которые вам нравятся, внутри каждого типа элемента списка, но я сохранил этот пример простым.ListView
OptionsActivity
Activity
TextView
Button
В
getItemView()
метод проверяет , чтобы увидеть , какие элементы списка должны быть типа 1 или типа 2. По моим статическим Интс я определил до вершины, первые 5 элементов списка будет список элементов типа 1, и 5 последних элементов списка будет список элементов типа 2 Таким образом, если вы скомпилируете и запустите это, у вас будетListView
пять элементов, содержащих только aButton
, и пять элементов, содержащих только aTextView
.Ниже приведен
Activity
код, xml-файл активности и xml-файл для каждого типа элемента списка.OptionsActivity.java:
activity_options.xml:
list_item_type_1.xml:
list_item_type2.xml:
источник
Этот код легко понять.
three_horizontal_text_views_layout.xml
ThreeStrings.java
ThreeHorizontalTextViewsAdapter.java
main_layout.xml
MainActivity.java
источник
ThreeHorizontalTextViewsAdapter.java
. Это то же самое, что и остальныеActivities
У Google есть пример под названием EfficientAdapter, который, на мой взгляд, является лучшим простым примером того, как реализовать пользовательские адаптеры. http://developer.android.com/resources/samples/ApiDemos/src/com/example/android/apis/view/List14.html @CommonsWare написал хорошее объяснение шаблонов, использованных в приведенном выше примере http: // commonsware.com/Android/excerpt.pdf
источник
Вы можете взглянуть на этот образец в официальном ApiDemos. Он показывает, как расширить
BaseAdapter
и применить его кListView
. После этого просто посмотрите на ссылкуBaseAdapter
и попытайтесь понять, что делает каждый метод (включая унаследованные) и когда / как его использовать.Также Google твой друг :).
источник
Проверить эту ссылку , очень просто через
convertView
, мы можем получить макет строки, которая будет отображаться в виде списка (который являетсяparentView
).используя позицию, вы можете получить объекты
List<Item>
.после этого нам нужно будет установить нужные детали объекта для идентифицированных виджетов формы.
тогда он вернет построенное представление, которое будет прикреплено к
parentView
(которое являетсяListView
/GridView
).источник
Вот пошаговое руководство по созданию настраиваемого адаптера для представления списка:
https://www.caveofprogramming.com/guest-posts/custom-listview-with-imageview-and-textview-in-android.html
источник
Модель данных
Адаптер массива
Основное занятие
row_item.xml
источник
Более компактный пример пользовательского адаптера (используя массив списков в качестве моих данных):
И вот как это использовать:
источник
BaseAdapter
лучший пользовательский адаптер для просмотра списка.и он имеет много функций, таких как
getCount()
,getView()
и т. д.источник
Это очень просто.
Источник: Custom ListView Android Tutorial
источник
источник
источник