Урок 33. Хранение данных. Preferences.

Обсуждение уроков
Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение n0tb0dy » 01 июн 2014, 19:24

когда исправил 36 строку вот на такую

sPref = getSharedPreferences(Context.MODE_PRIVATE);

то стала вылазить другая ошибка в эклипсе

Method getSharedPreferences(int) is not defined for type MySaveData

как сие побороть?

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 33. Хранение данных. Preferences.

Сообщение Foenix » 01 июн 2014, 19:46

в конструктор класса, по-моему, нужно передать контекст актвити или приложения. Все равно он при работе с преференсами по-любому нужен.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение n0tb0dy » 01 июн 2014, 20:22

спасибо большое, а как это сделать?

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение n0tb0dy » 01 июн 2014, 20:49

усе вроде сам разобрался все работает!

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение n0tb0dy » 17 июн 2014, 07:31

Preferences-данные сохраняются в файлы и вы можете посмотреть их. Для этого в Eclipse откройте меню Window > Show View > Other и выберите Android > File Explorer. Отобразилась файловая система эмулятора. Открываем data/data/ru.startandroid.develop.p0331sharedpreferences/shared_prefs и видим там файл MainActivity.xml.

у меня почему то каталог data вообще пустой и там ни чего нет

где еще можно поискать файлик с настройками?

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение Viewer » 17 июн 2014, 07:48

n0tb0dy писал(а):
у меня почему то каталог data вообще пустой и там ни чего нет
Если открываете этот каталог не на эмуляторе, а на реальном устройстве, без наличия root ничего не увидите.

Аватара пользователя
n0tb0dy
Сообщения: 135
Зарегистрирован: 14 фев 2014, 09:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение n0tb0dy » 17 июн 2014, 14:37

спасибо, но телефон у меня рутованный и на нем нет доступа, а на эмуляторе да видно эту папочку и файлики в ней

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 33. Хранение данных. Preferences.

Сообщение Foenix » 17 июн 2014, 14:58

иногда и на рутованном есть доступ :) Все зависит от ПО производителя.
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

Viewer
Сообщения: 180
Зарегистрирован: 30 апр 2014, 11:42

Re: Урок 33. Хранение данных. Preferences.

Сообщение Viewer » 17 июн 2014, 15:27

n0tb0dy писал(а):спасибо, но телефон у меня рутованный и на нем нет доступа, а на эмуляторе да видно эту папочку и файлики в ней
Если у вас телефон с рут, тогда меняйте права доступа вручную на директорию data и файлы "песочницы" вашего приложения и ddms их увидит. Глобально запускать adbd с правами рут на телефоне без танцев с бубном не получится, с рут правами можно запустить adb shell и работать с файлами вручную через неё, но для ddms они всеравно будут недоступны. Можно еще как-то временно (до следующей перезагрузки) перезапускать adbd с правами рут, но это тоже скорее всего не на всех устройствах возможно.

FRIST_008
Сообщения: 1
Зарегистрирован: 23 июн 2013, 02:38

Re: Урок 33. Хранение данных. Preferences.

Сообщение FRIST_008 » 05 авг 2014, 18:24

Прошу поправить урок с методом saveText и вместо commit() использовать apply(), так как в большинстве случаев это безопаснее для многопоточных приложений когда мы работаем с возвращаемыми значениями этих методов.

Gradle сборки выводят на commit() предупреждение на опасность!

Прошу заметить, что эта функция добавлена в 9-ом API, урок написан на 10-ом, поэтому я подумал что он должен соответствовать своему минимальному стандарту.

Юрий2711
Сообщения: 4
Зарегистрирован: 11 май 2014, 19:14

Re: Урок 33. Хранение данных. Preferences.

Сообщение Юрий2711 » 28 сен 2014, 13:50

Подскажите пожалуйста можно ли сохранить в SharedPreferences не только текст а например сразу целиком LinearLayout с объектами? и как это можно сделать?

Paket236
Сообщения: 5
Зарегистрирован: 08 авг 2014, 21:17

Re: Урок 33. Хранение данных. Preferences.

Сообщение Paket236 » 01 окт 2014, 00:49

Возник вопрос, хотя он больше по Java, чем по Android API.

В методе saveText() есть строчка sPref = getPreferences(MODE_PRIVATE); , где sPref - ссылка типа SharedPreferences. Т.к. SharedPreferences - интерфейс, то ссылка типа SharedPreferences должна ссылаться на объект класса, реализующего данный интерфейс. Смотрим, что же возвращает getPreferences(MODE_PRIVATE). А возвращает он, в конечном итоге, ссылку типа SharedPreferences (это происходит в классе Context). А где же создаётся объект, на который указывает эта ссылка? Какой класс у этого объекта? Из java-файлов я этого не понял (видимо, сказывается недостаток знаний). Помогите разобраться. :)

P.S: нашёл некий android\app\SharedPreferencesImpl.java, в котором все методы интерфейса SharedPreferences реализованы. Но не понял, как он тут задействуется.

Юрий2711
Сообщения: 4
Зарегистрирован: 11 май 2014, 19:14

Re: Урок 33. Хранение данных. Preferences.

Сообщение Юрий2711 » 16 ноя 2014, 12:12

https://yadi.sk/i/3RKahOW1cjeixИзображение

Ребята, подскажите пожалуйста, как можно сохранить из одного активити 2 разных файла?

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 33. Хранение данных. Preferences.

Сообщение doter.ua » 16 ноя 2014, 15:47

Т.к. SharedPreferences - интерфейс, то ссылка типа SharedPreferences должна ссылаться на объект класса, реализующего данный интерфейс.

Скорее всего это дело рук Activity и Сontext.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

pka
Сообщения: 6
Зарегистрирован: 26 ноя 2014, 23:45

Re: Урок 33. Хранение данных. Preferences.

Сообщение pka » 08 дек 2014, 23:23

Немного не по теме: подскажите пожалуйста, файлового обозревателя подключенного устройства в Android Studio нет? Что-то не могу найти.

Аватара пользователя
doter.ua
Сообщения: 1106
Зарегистрирован: 23 ноя 2013, 16:08
Откуда: Ukraine

Re: Урок 33. Хранение данных. Preferences.

Сообщение doter.ua » 08 дек 2014, 23:33

ADMonitor для AVirtualDevice или обычная передача файлов для рил девайса.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.

Аватара пользователя
Foenix
Сообщения: 4201
Зарегистрирован: 20 окт 2012, 12:01

Re: Урок 33. Хранение данных. Preferences.

Сообщение Foenix » 09 дек 2014, 16:05

pka писал(а):Немного не по теме: подскажите пожалуйста, файлового обозревателя подключенного устройства в Android Studio нет? Что-то не могу найти.
кнопка наверху с зелененьким андроидом Android device monitor
R.id.team

NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198

amikulich
Сообщения: 1
Зарегистрирован: 19 фев 2015, 12:20

Re: Урок 33. Хранение данных. Preferences.

Сообщение amikulich » 23 фев 2015, 09:42

damager82 писал(а):
btx писал(а): Это не удачное решение, данные следует сохранять в onPause, так как onPause будет обязательно вызван в приложении, а onDestroy не всегда, таким образом можно попросту потерять данные.
Да, имеет смысл в уроке уточнить, что я использую onDestroy только для примера.
Спасибо!
Да-да, уточните, пожалуйста, а еще лучше - скорректируйте пример, потому что до сих пор старый код. Я уже наступил на эти грабли. Перенос сохранения из OnDestroy в OnPause решил проблему.
P.S. За уроки спасибо!

Евгений Суханов
Сообщения: 12
Зарегистрирован: 15 мар 2015, 21:55

Re: Урок 33. Хранение данных. Preferences.

Сообщение Евгений Суханов » 24 мар 2015, 20:25

Ребят помогите пожалуйста, как сохранить объект в файл, а затем загрузить его (в другом активити)?

Sergiy_GT
Сообщения: 11
Зарегистрирован: 06 апр 2015, 13:09

Re: Урок 33. Хранение данных. Preferences.

Сообщение Sergiy_GT » 19 май 2015, 16:45

Здраствуйте! Есть ворпос: каким образом можно из одного Activity передать значение boolean в другое Activity? К примеру: boolean playPause = false; А во втором Activity его прочитаь и изминить значение boolean на переданный? Если можно пример кода. Зарание благодарю.

Ответить