Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Strelok45
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 149
#1

MultiSelectListPreference - Программирование Android

20.01.2015, 11:04. Просмотров 832. Ответов 9
Метки нет (Все метки)

Доброго времени суток.
Возник вопрос как сделать в настройках MultiSelectListPreference? Толкового мануала так и не нашел. Сейчас приложение работает через ListPreference.
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
    xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <CheckBoxPreference
    android:key="town"
    android:title="@string/town_title"
    android:summary="@string/town_summary"
    android:defaultValue="true" />
    
    <CheckBoxPreference
    android:key="i_go"
    android:title="@string/i_go_title"
    android:summary="@string/i_go_summary"
    android:defaultValue="true" />
    <ListPreference
       android:title="Поиск мест"
       android:summary="Выберите тип мест"
       android:key="listPref"
       android:defaultValue="digiGreen"
       android:entries="@array/listArray"
       android:entryValues="@array/listValues" />
 
</PreferenceScreen>
По этому коду не совсем разобрался, что означает значение параметра в 20 строке "digiGreen".

Листинг array.xml
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="listArray">
   <item>Кафе</item>
   <item>Ресторан</item>
   <item>АЗС</item>
</string-array>
<string-array name="listValues">
   <item>cafe</item>
   <item>restaurant</item>
   <item>gas_station</item>
 
</string-array>
</resources>
и код собственно
Java
1
2
3
4
5
6
7
SharedPreferences sp;
...
sp = PreferenceManager.getDefaultSharedPreferences(this);
...
String plas = sp.getString("listPref", "nr1");
String types = plas;
...
По этому куску кода не понял, что за параметр "nr1", это же по идее значение по умолчанию должно быть?
String types = "cafe|restaurant"; //получить должны что то наподобие
сейчас же работает, так (получаем какое либо одно значение)
Java
1
2
3
String types = "cafe";
String types = "restaurant";
String types = "gas_station";
Подскажите, куда копать, я только разбираюсь что к чему, поэтому вопросы есть.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.01.2015, 11:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос MultiSelectListPreference (Программирование Android):

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...

MultiSelectListPreference как получить массив выбранных значений? - Программир

MultiSelectListPreference как получить массив выбранных значений? - Программирование Android
Здравствуйте! Использую, multiselectlistpreference для выбора нужных дней недели... Вопрос в том, как потом получить строковый массив...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
20.01.2015, 11:49 #2
Default value (англ.) - стандартное значение, по умолчанию. Т.е. что будет возвращено, если настройки не были заданы пользователем.
1
Strelok45
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 149
20.01.2015, 11:55  [ТС] #3
Цитата Сообщение от contedevel Посмотреть сообщение
Default value (англ.) - стандартное значение, по умолчанию. Т.е. что будет возвращено, если настройки не были заданы пользователем.
это то я понял, а почему именно это в значении стоит. я данный пример из интернета взял, и вот не пойму почему "digiGreen"
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
20.01.2015, 12:03 #4
Цитата Сообщение от Strelok45 Посмотреть сообщение
это то я понял, а почему именно это в значении стоит. я данный пример из интернета взял, и вот не пойму почему "digiGreen"
Это значение присутствует в массиве listValues

Добавлено через 1 минуту
Получить выбранные элементы можно так:
Java
1
sharedPreferences.getStringSet(String key, Set<String> defValues)
1
Strelok45
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 149
20.01.2015, 12:13  [ТС] #5
Цитата Сообщение от contedevel Посмотреть сообщение
Это значение присутствует в массиве listValues
вообще да, это было бы логично, но в том примере откуда я это брал и в listValues не было данного параметра, я предполагаю, что выбран просто рендомный параметр, чтобы изначально не была выделена ни один пункт.

Цитата Сообщение от contedevel Посмотреть сообщение
Получить выбранные элементы можно так:

Java
1
sharedPreferences.getStringSet(String key, Set<String> defValues)
то есть, в моем примере это будет?
Java
1
String plas = sp.getStringSet("listPref", "cafe");
но на данную запись программа ругается (синтаксис).
И еще было интересно как они в строку поместятся несколько значений, по идее же там надо их разделить символом "|". В коде не проверял, так как ошибку синтаксиса выдавал ранее.
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
20.01.2015, 12:20 #6
Цитата Сообщение от Strelok45 Посмотреть сообщение
вообще да, это было бы логично, но в том примере откуда я это брал и в listValues не было данного параметра, я предполагаю, что выбран просто рендомный параметр, чтобы изначально не была выделена ни один пункт.
Он не обязательно должен там присутствовать, это то, что вернется Вам, когда Вы программно запросите настройки до того, как пользователь их изменить успел.

Цитата Сообщение от Strelok45 Посмотреть сообщение
но на данную запись программа ругается (синтаксис).
И еще было интересно как они в строку поместятся несколько значений, по идее же там надо их разделить символом "|". В коде не проверял, так как ошибку синтаксиса выдавал ранее.
Естественно, у Вас же типы не совпадают. Этот метод возвращает множество строк Set<String>, а не String
1
Strelok45
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 149
20.01.2015, 12:34  [ТС] #7
Цитата Сообщение от contedevel Посмотреть сообщение
Естественно, у Вас же типы не совпадают. Этот метод возвращает множество строк Set<String>, а не String
Даже так. То есть как я понимаю это массив строк уже какой то будет, в которых и находятся наши значения?
Тогда как я понимаю:
1. необходимо привести как то типы к массиву
2. выбрать из полученного массива данные
3. сложить их в строку и передать в types
Вот только как в коде это сделать надо подумать.
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
20.01.2015, 12:54 #8
Цитата Сообщение от Strelok45 Посмотреть сообщение
Даже так. То есть как я понимаю это массив строк уже какой то будет, в которых и находятся наши значения?
Тогда как я понимаю:
1. необходимо привести как то типы к массиву
2. выбрать из полученного массива данные
3. сложить их в строку и передать в types
Вот только как в коде это сделать надо подумать.
Set<T> - это одна из коллекций, типа List, HashMap и прочих, работать с ней очень легко.
Посмотрите Java Set
1
Strelok45
11 / 11 / 0
Регистрация: 18.02.2010
Сообщений: 149
23.01.2015, 05:38  [ТС] #9
Цитата Сообщение от contedevel Посмотреть сообщение
Set<T> - это одна из коллекций, типа List, HashMap и прочих, работать с ней очень легко.
Посмотрите Java Set
хм, переделал, вылетает при заходе в настройки ListPreference заменил на MultiSelectListPreference. Может там еще что то надо добавить?
0
contedevel
57 / 55 / 8
Регистрация: 07.10.2012
Сообщений: 598
23.01.2015, 13:14 #10
Цитата Сообщение от Strelok45 Посмотреть сообщение
хм, переделал, вылетает при заходе в настройки ListPreference заменил на MultiSelectListPreference. Может там еще что то надо добавить?
Выложите код и разметку, так сложно сказать...
0
23.01.2015, 13:14
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru