2011-11-19 36 views
0

我正在開發一個Android項目。我有一個項目列表,一行有三列。 現在我需要根據這些列對列表進行排序。 列標題是:number, name, summary如何在android中的項目列表上應用排序

現在,如果我點擊數字,比列表應按數字排序,如果我點擊名稱,比列表應按名稱排序。

現在我沒有得到哪個佈局或事件我應該使用這個頭在Android中。

請給我建議。

回答

0

編輯:

你必須讀這類似的問題,你就可以排序您的數據:

How to sort an ArrayList using multiple sorting criteria?

數據排序後,必須簡單地調用notifyDataSetChanged您的適配器上:約

yourAdapter.notifyDataSetChanged(); 

更多信息排序: http://en.allexperts.com/q/Java-1046/Sort-2-attributes-collection.htm

首先,爲您可能需要的Employee類的每個 不同方面創建一個Comparator類。 例如:

public class EmployeeAgeComparator 
     implements Comparator 
    { 
      public int compare(Object o1, Object o2) { 
       int age1 = ((Employee)o1).getAge(); 
       int age2 = ((Employee)o2).getAge(); 
       if (age1 < age2) return -1; 
       if (age2 < age1) return 1; 
       return 0; 
      } 
    } 

一旦你得到了EmployeeIdComparator,EmployeeNameComparator和所有的休息,然後使用此代碼:

 Comparator mc; 
     mc = new EmployeeIdComparator(); 
     Collections.sort(list, mc); 
+0

不知道你爲什麼從某人那裏得到-1。您的答案足夠好:只需對潛在列表進行排序,並通知觀察員有關更改。 – inazaruk

+0

@ Profete162:問題不在於如何對數據進行排序。問題是如何在android應用程序中實現。就像在開發一個網頁時一樣,我們可以使表頭可點擊。但在Android中做什麼。問題是佈局。 – Romi

+0

請問一個正確的問題...想幫忙,但我不明白你想要什麼!你想解釋如何在Button上單擊添加此代碼嗎? –

0

你可以使用比較,在烏爾名單適配器

public class CustomerByNameComparator implements Comparator<Customer> 
{ 
    public int compare(Customer o1, Customer o2) { 
     return o1.getName().compareToIgnoreCase(o2.getName()); 
    } 
} 

希望它能幫助你......

相關問題