#android #listview
#Android #listview
Вопрос:
я должен создать listview, в котором есть два элемента, которые будут отображаться вертикально. я знаю, что для использования адаптера по умолчанию, поставляемого с Android, может быть только один массив и один текстовый ресурс…т.е. если я использую android.R.layout.simple_list_view, то существует только один текстовый ресурс. Чтобы создать пользовательский Listview, я делаю следующее:
- создание файла XML-макета для каждого элемента listview
- расширение пользовательского класса адаптера, который расширяет baseadapter
- в методе getview класса пользовательского адаптера я увеличиваю представление для каждого элемента, а затем возвращаюсь с информацией, которую я хочу, чтобы элемент listview имел из массива, который я передал в качестве конструктора классу пользовательского адаптера.
это кажется очень утомительным, потому что есть несколько случаев, когда мне приходится создавать listview, где иногда в каждом элементе listview есть три текстовых элемента, а иногда по 2 текстовых элемента в каждом элементе listview.
есть ли более простой способ сделать вышеописанное.
заранее благодарю вас.
Ответ №1:
При таком простом макете я бы посоветовал вам просто использовать a LinearLayout
и 2-3 TextView
s (или любой другой вид, который вам нужен, даже горизонтальный LinearLayout
). Ничто не сравнится с такой простотой. В ListView
этом случае нет необходимости.
Комментарии:
1. я думаю, я не прояснил это в вопросе. существует целый список, который я должен отобразить, и каждый элемент (ListView) может иметь 2/3 textviews.
2. ОК. Извините за недоразумение 🙂 Тогда кажется, что вы выполняете в значительной степени стандартную процедуру. Если вы неоднократно используете похожие адаптеры в разных списках, я бы посоветовал вам создать свою собственную библиотеку и импортировать ее каждый раз, когда вам это нужно. К сожалению, больше сказать нечего.
Ответ №2:
Вы могли бы рассмотреть возможность создания универсального, повторно используемого файла макета ListView, в который загружаются все необходимые вам элементы (которых, надеюсь, немного). Вы могли бы использовать по умолчанию столько элементов в XML-файле layout с android:visible=»false», а затем программно переключать видимость.
Почему вы не можете просто повторно использовать адаптер? С ним связано множество методов загрузки / выгрузки.
Да, о чем говорит Aleadam; если у вас есть только пара вещей, зачем использовать ListView? TextView, казалось бы, гораздо более быстрый способ отображения прототипа данных!