Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 541
1

Окно настроек. ListPreference

24.09.2013, 19:18. Просмотров 1741. Ответов 8
Метки нет (Все метки)

В окне настроек вывожу чекбоксы с одиночным выбором (кружки):

XML
1
2
3
4
5
6
7
<ListPreference
android:defaultValue="1"
android:entries="@array/listArray"
android:entryValues="@array/listValues"
android:key="SourceData"
android:summary="@string/SourceData_summary"
android:title="@string/SourceData" />
Массив вариантов:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<?xml version="1.0" encoding="utf-8"?>
<resources>
 
    <string-array name="listArray">
        <item>FTP-сервер</item>
        <item>SD-карта</item>
    </string-array>
    <string-array name="listValues">
        <item>1</item>
        <item>2</item>
    </string-array>
 
</resources>
Пытаюсь установить в истину первый элемент по-умолчанию (android:defaultValue="1"), но всё равно оба элемента не заполнены, если их еще не записывали.
Можно ли исправить?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.09.2013, 19:18
Ответы с готовыми решениями:

Получить значение ListPreference из настроек
Как обратиться к классу настроек из одного класса и узнать оттуда значение ListPreference и...

ListPreference
Какой есть обработчик для itemов ListPreference? То есть что бы можно было обрабатывать нажатия на...

Прочитать значение настройки из ListPreference
Есть настройка: &lt;ListPreference android:defaultValue=&quot;1&quot; ...

Окно настроек исходники
Скачал один небольшой исходник там есть настройки персонажа см на скрин отметил красным. А где его...

Общее окно настроек
Здравствуйте! Такая ситуация: есть форма с табконтролом, на котором n-e количество вкладок; в...

8
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
24.09.2013, 19:33 2
Цитата Сообщение от Slon747 Посмотреть сообщение
В окне настроек вывожу чекбоксы с одиночным выбором (кружки):
А при чём тут чекбоксы к листу?
Цитата Сообщение от Slon747 Посмотреть сообщение
Пытаюсь установить в истину первый элемент по-умолчанию
Java
1
2
3
4
5
public static SharedPreferences sp;
boolean prefCheck;
.....
sp = PreferenceManager.getDefaultSharedPreferences(this);
prefCheck = sp.getBoolean("check", true);
Добавлено через 2 минуты
Цитата Сообщение от Slon747 Посмотреть сообщение
Можно ли исправить?
В активити с настройками
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
prefList = (ListPreference) findPreference("prefP");     
            prefList.setDefaultValue(prefList.getEntryValues()[2]); // значение 2 по умолчанию
            String ss2 = prefLis.getValue();
            if (ss2 == null) {
                prefList.setValue((String)prefList.getEntryValues()[2]);
                ss2 = prefList.getValue();
            }
            prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(ss2)]);
            prefList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    prefList2.setSummary(prefList.getEntries()[prefList.findIndexOfValue(newValue.toString())]);
                    return true;
                }
 
                
            });
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 541
24.09.2013, 19:57  [ТС] 3
Цитата Сообщение от Digetix Посмотреть сообщение
В активити с настройками
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
prefList = (ListPreference) findPreference("prefP");     
            prefList.setDefaultValue(prefList.getEntryValues()[2]); // значение 2 по умолчанию
            String ss2 = prefLis.getValue();
            if (ss2 == null) {
                prefList.setValue((String)prefList.getEntryValues()[2]);
                ss2 = prefList.getValue();
            }
            prefList.setSummary(prefList.getEntries()[prefList.findIndexOfValue(ss2)]);
            prefList.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
                @Override
                public boolean onPreferenceChange(Preference preference, Object newValue) {
                    prefList2.setSummary(prefList.getEntries()[prefList.findIndexOfValue(newValue.toString())]);
                    return true;
                }
 
                
            });
Что-то не понял. В OnCreate добавил:
Java
1
2
ListPreference prefList = (ListPreference) findPreference("SourceData");
prefList.setDefaultValue(prefList.getEntryValues()[1]);
А метода getValue() у ListPreference нет
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
24.09.2013, 22:34 4
Цитата Сообщение от Slon747 Посмотреть сообщение
А метода getValue() у ListPreference нет
Этот метод для чекбокса

Добавлено через 14 минут
Цитата Сообщение от Slon747 Посмотреть сообщение
А метода getValue() у ListPreference нет
А @SuppressWarnings("deprecation") добавляли?
0
24.09.2013, 22:34
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 541
25.09.2013, 09:09  [ТС] 5
Цитата Сообщение от Digetix Посмотреть сообщение
А @SuppressWarnings("deprecation") добавляли?
Добавил, не помогло.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
25.09.2013, 12:07 6
Цитата Сообщение от Slon747 Посмотреть сообщение
Добавил, не помогло.
Покажите своё активити с настройками
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 541
25.09.2013, 12:23  [ТС] 7
Цитата Сообщение от Digetix Посмотреть сообщение
Покажите своё активити с настройками
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package com.example.first;
 
import android.os.Bundle;
import android.preference.ListPreference;
import android.preference.PreferenceActivity;
 
public class PrefActivity extends PreferenceActivity {
 
  @Override
  @SuppressWarnings("deprecation")
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.settings);
    
/*
    ListPreference prefList = (ListPreference) findPreference("SourceData");
    prefList.setDefaultValue(prefList.getEntryValues()[1]);
    String ss2 = prefLis.getValue();
*/
   
  }
}
Странно, но когда я запустил программу на устройстве, то в настройках первый пункт был выставлен по-умолчанию.
Так что может и не стоит больше ничего делать.
0
Digetix
104 / 104 / 1
Регистрация: 09.04.2012
Сообщений: 651
27.09.2013, 21:47 8
Цитата Сообщение от Slon747 Посмотреть сообщение
Странно, но когда я запустил программу на устройстве, то в настройках первый пункт был выставлен по-умолчанию.
Так что может и не стоит больше ничего делать.
Проблема решилась или нет?
0
Slon747
59 / 37 / 2
Регистрация: 24.08.2013
Сообщений: 541
27.09.2013, 23:16  [ТС] 9
Цитата Сообщение от Digetix Посмотреть сообщение
Проблема решилась или нет?
Вероятно решилась.
На эмуляторе по-умолчанию ни один из пунктов не был выставлен.
А на устройстве по-умолчанию выставлен первый параметр.
Буду надеяться, что так будет всегда .
Спасибо.
0
27.09.2013, 23:16
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2013, 23:16

Окно настроек клавиша Insert
Здравствуйте Делаю отдельную форму настроек для программы. Включение отключение клавиши Insert...

Окно настроек для игры
Здравствуйте! Хочу создать окно настроек. Запуская игру, открывается основное меню (начать игру,...

Окно или панель настроек
Как создать такое окно настроек? Допустим я кликаю через меню, Файл-&gt;настройки А после у меня...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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