2012-08-07 116 views
3

我想創建一個ListPreference在我的設置中填充了存儲在我的SQLite數據庫中的不同「年」。我已經將它添加到所有年份中,但是如果它們中有一個以上的話,它會不止一次地添加它們。我不知道如何讓每個出現一次(例如2012,2011,2010,而不是2012,2012,2012,2011,2010,2010)。繼承人我的代碼:創建動態ListPreference(Android)

ListPreference listPreferenceCategory = (ListPreference) findPreference("Filter"); 

    entries = new ArrayList<String>(); 
    values = new ArrayList<String>();  

    mySQLiteAdapter = new SQLiteAdapter(this); 

    mySQLiteAdapter.openToWrite(); 

    cursor = mySQLiteAdapter.queueAll6(); 
    cursor.moveToFirst(); 

    for(int i = 0; i < cursor.getCount();i++) 
    { 

     String year = cursor.getString(cursor.getColumnIndex(SQLiteAdapter.YEAR)); 

    if(Arrays.asList(entries).contains(year) == false){ 

     entries.add(year); 

     values.add(year); 
    } 

    cursor.moveToNext(); 

    } 


    final CharSequence[] charSequenceItems = entries.toArray(new CharSequence[entries.size()]); 
    final CharSequence[] charSequenceItems2 = values.toArray(new CharSequence[values.size()]); 

     listPreferenceCategory.setEntries(charSequenceItems); 
     listPreferenceCategory.setEntryValues(charSequenceItems2); 


    mySQLiteAdapter.close(); 

回答

2

算出來。我需要使用String [] array = entries.toArray(new String [entries.size()]);然後Arrays.asList(array).contains(year)== false