Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
windwdm
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5
#1

Preferences работает не корректно - Программирование Android

05.07.2012, 16:28. Просмотров 984. Ответов 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();
            }
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.07.2012, 16:28     Preferences работает не корректно
Посмотрите здесь:

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

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

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

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

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

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

Чтение preferences в BroadcastReceiver - Программирование Android
Доброго времени суток. Сам смысл того что я делаю: есть активити, которая отображает состояние батареи, есть активити настроек и есть...

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

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

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

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

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

Добавлено через 2 минуты
Листинг 6.4. смотрите.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.07.2012, 18:39     Preferences работает не корректно
Еще ссылки по теме:

Ошибка в Preferences в Android 4.4 - Программирование Android
Здравствуйте! Не могу понять суть ошибки, на всех версиях Android 2.2+ программа выполнялась корректно, до выхода Kit kat... У меня в...

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

Где найти Preferences в Android Studio 1.2.2 - Программирование Android
Window &gt; Preferences &gt;Android &gt; Build. Где найти Preferences в Android Studio 1.2.2 Нужно создать SHA1-значение ключа, которым будет...

Как получить preferences из broadcast reciver? - Программирование Android
Здравствуйте! Активити сохраняет данные в SharedPreferences. Данные нужно получить из класса, наследующего BroadcastReceiver....

Шаблон Preferences Framework для различных объектов - Программирование Android
Всем привет. Есть десять кнопок. При нажатии на каждую из них должно открываться свое меню настроек (надпись, размер и так далее). ...


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

Или воспользуйтесь поиском по форуму:
windwdm
0 / 0 / 0
Регистрация: 05.07.2012
Сообщений: 5
05.07.2012, 18:39  [ТС]     Preferences работает не корректно #9
переделал по листингу. все работает. а в примере этот код упущен(

Добавлено через 25 секунд
Большое спасибо за помощь. надо быть повнимательнее при чтении теории
Yandex
Объявления
05.07.2012, 18:39     Preferences работает не корректно
Ответ Создать тему
Опции темы

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