2014-10-03 2 views
-2

Я разрабатываю свое первое приложение, и хочу показать сетку, в которой есть список записей. Я получаю эти записи через запросы в локальной базе данных SQLite, так что это динамический список. Каждый элемент этого списка должен иметь 2 поля: строку и значение.Как показать список предметов с двумя полями?

Как правильно это сделать? Я вижу ListView, но это, похоже, не соответствует моим потребностям, и мне не нужны элементы с кликом.

Можете ли вы предложить лучшее решение?

+0

Я бы использовал ListView. Они не должны быть интерактивными, вы можете настроить представление, чтобы иметь 2 столбца (или быть тем, что вы хотите), и они обладают большими преимуществами производительности при просмотре вторсырья и т. Д. Во время прокрутки. –

+0

Можете ли вы показать пример с ListView, который имеет 2 столбца? – smartmouse

+0

http://www.technotalkative.com/android-multi-column-listview/, например. Это просто пользовательский вид, который вы возвращаете как строку. –

ответ

1

Я бы все еще использовал ListView.

Они не должны быть доступны для просмотра, вы можете настроить представление, чтобы иметь 2 столбца (или быть тем, что вы хотите), и они обладают большими преимуществами производительности при просмотре вторсырья и т. Д. Во время прокрутки.

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

Here - пример.

+0

Я столкнулся с проблемой: мой класс MultiColumnActivity не является Activity, это фрагмент. Поэтому, если я пишу «public class StatTab1 extends Fragment» вместо «extend Activity», я получаю ошибки в setContentView, ListView и ListViewAdapter ... – smartmouse

+0

Я думаю, что это выходит за рамки этого вопроса. Очевидно, что вам нужно будет изменить любой код, который вы найдете для работы с фрагментом. Например, в фрагментах вы не используете 'setContentView', но устанавливаете все в' onCreateView' - однако, не видя ни одного из вашего кода, я не могу ответить. –

1

Создание программно или в XML LinearLayout с вертикальной ориентацией:

LinearLayout layout = findViewById(r.id.layout); 
layout.setOrientation(LinearLayout.VERTICAL); 

Затем создать TextView для каждого элемента с текстом, состоящий из строки и значения элемента и добавить их в макет:

for (int i=0; i<items.size; i++) { 
    TextView tv = new TextView(context); 
    tv.setText(items[i].stringName + ": " + items[i].value); 
    layout.addView(tv); 
}