2013-01-03 42 views
3

我是android領域的新手,我想按字母順序排列我的微調數據。請幫助如何在Spinner中按字母順序排序數據

注意: - 我正在從網絡服務接收數據。

我的代碼是: -

 <Spinner 
      android:id="@+id/spinnerAtlasContactSignup" 
      android:layout_width="200dip" 
      android:layout_height="46dp" 
      android:layout_below="@+id/editCompanySignup" 
      android:layout_marginBottom="60dp" 
      android:layout_marginTop="10dp" 
      android:background="@drawable/slect_box1x" 
      android:ems="10" 
      android:padding="10dp" 
      android:prompt="@string/atlas_contact" /> 

private void initializeSpinner(ArrayList<AtlasContact> atlastContacts) { 

    ArrayAdapter<AtlasContact> adapter = new ArrayAdapter<AtlasContact>(this,android.R.layout.simple_spinner_item, atlastContacts); 
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    // Apply the adapter to the spinner 
    spinnerAtlasContact.setAdapter(adapter); 

這裏AtlasContact是接受來自Web服務傳來的數據的類。

+0

這是一個常見的問題,明白有些人可能會downvote你,因爲這個基本的問題已被問了這麼多次。 – Sam

+0

好吧,我會刪除它作爲新的android n stackoverflow太所以我不知道。 :( –

+0

那麼,現在有答案,所以你不能刪除它,但目前沒有人downvoted這個。也許這些人不會注意到。:) – Sam

回答

2

如果您取出由的SQLite數據庫數值,然後將他們的作品將查詢排序按字母順序排列的值,並把它們放入數組排序。

嘗試將數據添加到的ArrayList,只是使用集合類排序爲你::

Collections.sort(SourceArray); 

此外,

可比接口和實現方法compareTo()

+1

其顯示如下錯誤:--->綁定不匹配:類型集合的泛型方法排序(列表)不適用於參數(的ArrayList )。推斷的類型AtlasContact不是有界參數的有效替代> –

5

你只需要梳理源:

Collections.sort(atlastContacts, new Comparator<AtlasContact>(){ 
    public int compare(AtlasContact a1, AtlasContact a2) { 
    return a1.getName().compareToIgnoreCase(a2.getName()); 
    } 
}); 
0

嘗試Collections.sort(atlastContacts);

0

您檢查文檔? ArrayAdapter有排序方法。

你只需要實現自己的Comparator。我想這只是:

int compare(String s1, String s2) { return s1.compareTo(s2); }