2012-01-16 38 views
0

我創建了一個表(TableLayout)這顯示了用於調用不同的聯繫人,分鐘數像圖所示:在TableLayout中可以排序行嗎?或者我應該使用SQLite?

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

我希望能夠讓他們在降分使用的順序對行進行排序。這可能沒有首先使用SQLite將我的表製作成數據庫?今天之前我還沒有用過它,看起來很漫長,應該是一件很簡單的事情。

如果需要,我可以發佈我用來創建我的表的代碼。

+0

如果底層數據在List中,則可以對其進行排序。 http://docs.oracle.com/javase/6/docs/api/java/util/Collections.html#sort(java.util.List) – Krylez 2012-01-16 23:15:06

+0

我的數據位於2個列表中,因此重新排序一個不會排序另一個,不幸的是。我想我會嘗試使用SQLite。 – 2012-01-16 23:39:07

回答

1

我不會使用SQLite。相反,如果你有一個聯繫人列表和一個使用分鐘列表,我會使用字段String name和Int分鐘進行聯繫。然後我將它們存儲在List中,並通過在Contact類上實現Comparable(一個接口)對它們進行排序。可比較:(http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Comparable.html)。

可比解釋說:

需要實現的方法 「公衆詮釋的CompareTo(對象o)」。這應該返回1如果theres更多分鐘,0如果theres相同數量和-1如果theres少。然後,你可以無痛地排序你的聯繫人對象。

請記住將對象強制轉換爲聯繫人,並且有辦法訪問分鐘數,例如在聯繫人實例上調用public int getMinutes()。

另請注意,您將很可能不得不以編程方式使用匿名錶格行創建佈局,並從Contact對象的字段中設置表格行中的每個textview。

+0

這真是太好了,謝謝你的幫助,我嘗試過使用SQLite來實現它,但它運行了大概5秒鐘,所以我放棄了。請試試這個。 – 2012-01-17 15:45:43

相關問題