在TableLayout中可以订购行吗?或者我应该使用SQLite?

时间:2012-01-16 22:57:10

标签: android sqlite android-tablelayout

我创建了一个表(TableLayout),其中显示了调用不同联系人所使用的分钟数,如下所示:

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

我希望能够对行进行排序,使它们按照Minutes Used的降序排列。如果没有先使用SQLite将我的表放入数据库,这是否可行?我在今天之前没有使用过它,这似乎是一个非常简单的事情。

如果需要,我可以发布用于创建表格的代码。

1 个答案:

答案 0 :(得分:1)

我不会使用SQLite。相反,如果您有一个联系人列表和一个使用的分钟列表,我会创建一个类Contact字段String name和Int minutes。然后我将它们存储在List中,并通过在Contact类上实现Comparable(一个接口)对它们进行排序。可比较:(http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html)。

可比较的解释:

您需要实现方法“public int CompareTo(Object o)”。如果有更多的分钟,则应该返回1,如果相同的数量则返回0,如果更少则返回-1。然后,您可以轻松地对Contact对象进行排序。

请记住将对象强制转换为联系人,并有办法访问分钟数,例如public int getMinutes()以调用Contact实例。

另请注意,您很可能必须以编程方式使用匿名表行创建布局,并在Contact对象的字段中设置表格行中的每个textview。