В TableLayout можно упорядочить строки?Или я должен использовать SQLite? - PullRequest
0 голосов
/ 17 января 2012

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

Contact       |    Minutes Used
______________|__________________
              |
Joe Bloggs    |         5
Eric Peters   |        10
John Smith    |        53
Susan Jones   |         9

Я хочу иметь возможность упорядочить строки так, чтобы они были в порядке убывания используемых минут. Возможно ли это без предварительного превращения моей таблицы в базу данных с использованием SQLite? Я не использовал его до сегодняшнего дня, и кажется, что это очень долгий путь, что должно быть довольно просто.

Я могу опубликовать код, который я использую для создания своей таблицы, если это будет необходимо.

1 Ответ

1 голос
/ 17 января 2012

Я бы не использовал SQLite.Вместо этого, если у вас есть один список контактов и один список использованных минут, я бы создал класс Contact с полями String name и Int minutes.Затем я бы сохранил их в списке и отсортировал, реализовав Comparable (интерфейс) в классе Contact.Comparable: (http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html).

Comparable объяснил:

вам нужно реализовать метод "public int CompareTo (Object o)". Это должно вернуть 1, если есть больше минут, 0, если есть то же количество и-1, если меньше. Тогда вы можете безболезненно сортировать объекты Contact.

Не забудьте привести объект к контакту и иметь возможность получить доступ к количеству минут, например public int getMinutes () для вызовадля экземпляра Contact.

Также обратите внимание, что вам, скорее всего, придется программно создавать макет с анонимными строками таблицы и устанавливать каждое текстовое представление в строке таблицы из полей объекта Contact.

...