SQLite データベースに格納されているさまざまな「年」が取り込まれた設定でListPreferenceを作成したいと考えています。すべての年を追加するようにしましたが、複数ある場合は複数回追加します。それぞれを 1 回だけ表示する方法がわかりません (例: 2012,2012,2012,2011,2010,2010 の代わりに 2012,2011,2010)。私のコードは次のとおりです。
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();