Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
#1

Как при обновлении виджета получить настройки и применить их

03.11.2012, 16:06. Просмотров 1000. Ответов 2
Метки нет (Все метки)

Доброго времени.
Создаю виджет, который отображает кол-во дней от некой начальной даты. (просто так для изучения).
При первом создании виджета на рабочем столе планируется открыть окно настроек где будет указана эта начальная дата. По кнопке Применить данные сохраняются в файл xml используя android.content.SharedPreferences.Editor;
В самом виджете в методе onUpdate хочу эти настройки считать ну и собственно получить разницу в днях и вывести их на виджет.
Проблема: не могу инициализировать объект класса SharedPreferences:
mSettings = getSharedPreferences(FILE_NAME, Context.MODE_PRIVATE);
eclipse пишет следующее: "The method getSharedPreferences(String, int) is undefined for the type WidgetActivity". Что мне написать, что для класса AppWidgetProvider этот метод стал известным.
Может я вообще все не правильно задумал и это делается как то иначе?
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.11.2012, 16:06
Ответы с готовыми решениями:

Как сделать, чтобы при обновлении приложения в Google Play сохранялись пользовательские настройки и данные
Как сделать, чтобы при обновлении приложения в Google Play сохранялись...

Как сохранить настройки в одном Activity и получить в другом?
Ипользовал эту статью...

Как сохранить настройки приложения при обновлении?
Как сохранить настройки приложения при его обновлении в marketplace? И как это...

Как навести мышку на x,y внутри виджета относительно 0,0 виджета (левого верхнего угла виджета)?
Как навести мышку на x,y внутри виджета относительно 0,0 этого виджета (левого...

Как применить настройки для Explorer'a?
Типа изменяешь что-то в св-вах обозревателя и нажимаешь кнопку Применить,...

2
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
03.11.2012, 17:06 #2
сам виджеты никогда не делал, но вот что нагуглил

getSharedPreferences(), should you choose to use it, is only available on subclasses of Context, like Activity or Service. AppWidgetProvider is a subclass of BroadcastReceiver, which is not a Context.

That being said, if you are going to use the PreferenceScreen system, or if you are not certain that it's gotta gotta gotta be getSharedPreferences(), I would use PreferenceManager.getDefaultSharedPreferences() instead. Those are the SharedPreferences that PreferenceScreen/PreferenceActivity will use.
здесь советуют использовать статический метод PreferenceManager.getDefaultSharedPreferences()

Добавлено через 1 минуту
еще такое


You should have been passed a context in widget's onUpdate() method so you can call context.getSharedPreferences().
в AppWidgetProvider есть методы, например onUpdate, получающие context, вот к нему вызывать context.getSharedPreferences()
1
dubok79
324 / 122 / 10
Регистрация: 01.11.2012
Сообщений: 586
03.11.2012, 20:39  [ТС] #3
Воспользовался последней подсказкой. Все получилось. Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.11.2012, 20:39

Как применить настройки без перезапуска приложения
Здравствуйте! Ситуация следующая, в процессе работы программа записывает...

Как применить настройки только к конкретному слайдеру (CSS)?
Сайт на WP с пэдж билдером. У меня были проблемы со слайдером, он не был в...

Как применить все необходимые настройки "на лету", без перезапуска программы
Есть проект на C# + WPF, имеются два окна: MainWindow и SettingsWindow....


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

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

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