创建动态ListPreference(Android)

时间:2012-08-07 18:41:48

标签: android arrays sqlite settings preference

我想在我的设置中创建一个 ListPreference ,其中填充了存储在我的SQLite数据库中的不同“年”。我已经把它添加到了所有年份,但是如果它们不止一个,它会多次添加它们。我无法弄清楚如何使每个只出现一次(例如2012,2011,2010。而不是2012,2012,2012,2011,2010,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();

1 个答案:

答案 0 :(得分:2)

想通了。我需要使用String [] array = entries.toArray(new String [entries.size()]);然后是Arrays.asList(array).contains(year)== false