Необычный динамический список в Android: TableLayout vs ListView - PullRequest
2 голосов
/ 16 июня 2010

Требуется наличие не очень тривиального динамического списка, каждая запись которого состоит из нескольких столбцов (тексты, кнопки).Это должно выглядеть примерно так:

Text11 Text12 Button1 Button2
Text21 Text22 Button1 Button2
...

Сначала очевидный способ достичь этого, казалось бы, TableLayout.Я ожидал, что в файле res / layout / *. Xml будут указаны данные макета / стиля и заполнен каким-либо набором данных из кода Java (как в случае ListView, для которого можно указать TextView элемента в * .xml.и привязать его к некоторому массиву, используя ArrayAdapter).Но после игры некоторое время, все, что я нашел возможным, - это полное заполнение TableLayout программно.Тем не менее, создание TableRow с помощью TableRow и установка атрибутов макета непосредственно в коде Java не выглядит достаточно элегантным.

Так что вопрос: Я на правильном пути?TableLayout действительно лучший вид для этого?Может быть, более целесообразно расширить ListView или что-то еще, чтобы удовлетворить такие требования?

Ответы [ 2 ]

4 голосов
/ 16 июня 2010

Используя ListView и ArrayAdapter, вы можете создавать более сложные макеты, чем просто TextView. Вы можете указать LinearLayout с 2 TextViews и 2 кнопками для каждой строки в списке.

вот похожий вопрос Android: элементы ListView с несколькими нажимаемыми кнопками

1 голос
/ 16 июня 2010

ИМХО, это зависит от объема ваших данных, которые вам нужно визуализировать.

Построить макет динамически через inflate / addView - довольно простая задача, но также медленнее, чем при использовании специального адаптера. с помощью специального адаптера вы можете повторно использовать параметр convertView, а затем устанавливать значения более эффективно

...