3

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();
4

1 に答える 1

2

理解した。String[] array = entries.toArray(new String[entries.size()]); を使用する必要がありました。そして Arrays.asList(array).contains(year) == false

于 2012-08-08T07:03:08.583 に答える