Как добавить выбранные значения MultiSelectListPreference в набор? - PullRequest
0 голосов
/ 25 октября 2018

Итак, я должен установить выбранные значения из MultiSelectListPreference в переменную Set для хранения значений tUserSharedPrefhese в объекте UserSharedPref с помощью метода putStringSet ().

Моя XML-часть MultiSelectListPreference:

<MultiSelectListPreference
    android:title="Objects to detect"
    android:summary="person,bicycle,motorcycle,car,bus,truck"
    android:defaultValue="@array/values"
    android:key="objects_to_detect"
    android:entries="@array/objects"
    android:entryValues="@array/values"
    />

Моя часть кода:

objects = (MultiSelectListPreference) findPreference("objects_to_detect");

    objects.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
        @Override
        public boolean onPreferenceChange(Preference preference, Object newValue) {



            Set<String> myHashSet = new HashSet(10);  
            StringTokenizer st = new StringTokenizer(newValue.toString(), ",");
            while(st.hasMoreTokens())
            {   Log.d("TEST:",st.nextToken()); }

            while(st.hasMoreTokens())
            {   myHashSet.add(st.nextToken()); }

            editor_objects.putStringSet(UserSharedPref.objectList,myHashSet);
            editor_objects.commit();
            myHashSet.clear();
            return false;
        }
    });

Проблема в том, что: если я использую только newValue, я получаю ["", "", ""] как строку, не знаю, как правильно ее проанализировать.

Если я использую StringTokenizer () с Hashmap, то я получаю выбранные варианты в [["selection1"], ["selection2"], "selection3"], это самый худший из форматов. У меня естьсохранить выборки в объекте SharedPreference с помощью putStringSet ().

Скажите, пожалуйста, как решить эту проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...