С Новым годом! Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5

Preferences работает не корректно

05.07.2012, 16:28. Показов 1537. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
изучаю андроид по учебнику Рето Майера. Дошел до темы создания меню настроек. делаю все по примеру но почему то программа работает не корректно. настройки применяются только после перезагрузки эмулятора. дебагинг показал что при выборе какого нибудь параметра выдается тот же результат что и при нажатии на кнопку отмены.

вот файл настроек
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
25
26
27
28
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen
        xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference
            android:key="PREF_AUTO_UPDATE"
            android:title="Auto refresh"
            android:summary="Select to turn on automatic updating"
            android:defaultValue="true"
            />
    <ListPreference
            android:key="PREF_UPDATE_FREQ"
            android:title="Refresh frequency"
            android:summary="Frequency at which to refresh earthquake list"
            android:entries="@array/update_freq_options"
            android:entryValues="@array/update_freq_values"
            android:dialogTitle="Refresh frequency"
            android:defaultValue="60"
            />
    <ListPreference
            android:key="PREF_MIN_MAG"
            android:title="Minimum magnitude"
            android:summary="Select the minimum magnitude earthquake to report"
            android:entries="@array/magnitude_options"
            android:entryValues="@array/magnitude"
            android:dialogTitle="Magnitude"
            android:defaultValue="3"
            />
</PreferenceScreen>
масив данных

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
25
26
27
28
29
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="update_freq_options">
        <item>Every Minute</item>
        <item>5 minutes</item>
        <item>10 minutes</item>
        <item>15 minutes</item>
        <item>Every Hour</item>
    </string-array>
 
    <string-array name="magnitude">
        <item>3</item>
        <item>5</item>
        <item>6</item>
        <item>7</item>
        <item>8</item>
    </string-array>
 
    <string-array name="magnitude_options">
        <item>3</item>
        <item>5</item>
        <item>6</item>
        <item>7</item>
        <item>8</item>
    </string-array>
 
    <string-array name="update_freq_values">
        <item>1</item>
        <item>5</item>
в активити резалт всегда resultCode == Activity.RESULT_CANCELED

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        try {
        super.onActivityResult(requestCode, resultCode, data);
        } catch (Exception e) {
            e.printStackTrace();
        }
 
        if (requestCode == SHOW_PREFERENCES)
            if (resultCode == Activity.RESULT_OK) {
                updateFromPreferences();
                refreshEarthquakes();
            } else if (resultCode == Activity.RESULT_CANCELED) {
                refreshEarthquakes();
            }
    }
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
05.07.2012, 16:28
Ответы с готовыми решениями:

Не корректно работает AutoCompleteTextView
Доброго времени суток. Есть AutoCompleteTextView, на реальном (не эмуляторе) Андроиде 4.1 он работает как надо, на реальном 2.3.6 и 2.2.2...

Приложение в телефоне работает корректно только в эмуляторе
мобильное приложение .apk который я скинул на свой телефон захожу проверяю открывает когда нажимаю на кнопку вылетает а в эмуляторе...

Preferences
Доброго всем дня. В android только начинаю разбираться. Пытаюсь сохранить настройки по уроку...

8
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2012, 17:44
Опишите подробней что у Вас не получается и зачем Вам onActivityResult при работе с преференсами.
0
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5
05.07.2012, 17:56  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
Опишите подробней что у Вас не получается и зачем Вам onActivityResult при работе с преференсами.
нужно чтобы при выборе, например минимальную магнитуду в 2 единицы чтобы после этого сразу вызывался метод updateFromPreferences();

в учебнике написано что в методе onActivityResult отлавливается результат выбора настройки. и по идее если нажать на кнопку отмена resultCode == Activity.RESULT_CANCELED, а если выбрать какой нибудь параметр то resultCode == Activity.RESULT_OK.

Но почему-то у меня в любом случае результат первый
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2012, 18:04
Что за учебник?
может Вы что-то неправильно поняли?
что бы получить Activity.RESULT_OK нужно его засетать (setResult(...)) в активити, которую вы вызвали методом startActivityForResult(...).
0
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5
05.07.2012, 18:11  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
Что за учебник?
может Вы что-то неправильно поняли?
что бы получить Activity.RESULT_OK нужно его засетать (setResult(...)) в активити, которую вы вызвали методом startActivityForResult(...).
Рето Майер - Android 2. Программирование приложений. Там сначала делали активность без использования фреймворка настроек (Preferences fraimwork), потом ее переделывали под фреймворк. поэтому трудно определить что там точно надо. но в примерах которые идут к книге тоже нет присваивания (они тоже не работают)
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2012, 18:18
какая страница?

Добавлено через 2 минуты
вот из этой книги.

Java
1
2
3
4
5
6
7
8
Button okButton = (Button) findViewById(R.id.okButton);
okButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
savePreferences();
Preferences.this.setResult(RESULT_OK);
finish();
}
});
а у Вас так в коде?
есть okButton который делает setResult(RESULT_OK)? именно этим батоном Вы выходите с преференс активити?

Добавлено через 1 минуту
проверьте выполняется ли у Вас этот код.

Добавлено через 1 минуту
или я не тот пример смотрю?

Добавлено через 40 секунд
а, понял, нужно мне глянуть следующий раздел...
0
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5
05.07.2012, 18:19  [ТС]
Цитата Сообщение от V0v1k Посмотреть сообщение
какая страница?
на странице 255 создается без фреймворка.. там есть присваивание (стр 259 п.7), внутри обработчиков кнопок ок и кансел.

позже на странице 569 приложение переделывается под фреймворк где в пункте 3 просят убрать весь предыдущий код вместе с обработчиками. после чего присваивание нигде не описано
0
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
05.07.2012, 18:24
такс, посмотрел следующий раздел, там совсем не нужно использовать onActivityResult, там нужно юзать
Java
1
2
3
4
5
public void onSharedPreferenceChanged(SharedPreferences prefs, String
key) {
// TODO Проверять общие настройки, ключевые параметры и изменять UI
// или поведение приложения, если потребуется.
}
в него и впишите updateFromPreferences();

Добавлено через 2 минуты
Листинг 6.4. смотрите.
0
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5
05.07.2012, 18:39  [ТС]
переделал по листингу. все работает. а в примере этот код упущен(

Добавлено через 25 секунд
Большое спасибо за помощь. надо быть повнимательнее при чтении теории
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.07.2012, 18:39
Помогаю со студенческими работами здесь

Preferences
Как проверить были ли хотя бы раз хранены данные с помощью Preferences

О работе с Preferences
Друзья, возник чисто теоретический вопрос по работе с Preferences в Андроид студио: какая из предложенных ниже стратегий работы с...

Preferences из Applicaton
Нужно еще до открытия формы (в Application) получать и сохранять настройки. Пока работаю с текстовиком. Теоретически могу...

Preferences Framework: ActionBar
Всем привет! Недавно начал изучать Android. При написании программы я пользовался Preferences Framework. Но Preferences Framework не...

Ошибка в Preferences Framework
Недавно начал изучать программирование под андроид и столкнулся с проблемой. Я создал xml с настройками через Preferences Framework, создал...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru