Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
leonardo666
2 / 2 / 0
Регистрация: 16.09.2016
Сообщений: 101
#1

SharedPreferences в другом классе - Программирование Android

09.01.2017, 14:22. Просмотров 339. Ответов 8
Метки нет (Все метки)

Здравствуйте. Вопрос такой.
есть основной класс MainActivity и другой класс, пытаюсь в нем сохранить переменную string в SharedPreferences что бы считать потом в классе MainActivity, но среда говорит что не правильно. А именно либо подчеркивает "this"

Java
1
2
3
4
        SharedPreferences sPref = PreferenceManager.getDefaultSharedPreferences(this);
        SharedPreferences.Editor ed = sPref.edit();
        ed.putString("yes","yes");
        ed.apply();
либо если делаю
Java
1
2
3
        SharedPreferences kmsset = getSharedPreferences("kms", MODE_PRIVATE);
        SharedPreferences.Editor editor = kmsset.edit();
        editor.putString("yes","yes");
то пишет что getSharedPreferences не знает что это такое.
Как обращаться к одной и тойже переменой из разных классов ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2017, 14:22
Я подобрал для вас темы с готовыми решениями и ответами на вопрос SharedPreferences в другом классе (Программирование Android):

SharedPreferences
Всем привет, вопрос: Как через SharedPreferences сохранять "String текст", я...

SharedPreferences
Доброй ночи. Вышла заминка с бд класса SharedPreferences. Вообщем вот код: ...

SharedPreferences
Можно как-то сохранить SharedPreferences файл после перезагрузки девайса? ...

SharedPreferences
выручайте, в чем ошибка? выводит 94 и 95, а должно 84 и 85 public class...

SharedPreferences
String PR = "key"; SharedPreferences mySharedPreferences =...

SharedPreferences
как сохранить целое значение в SharedPreferences?

8
Pablito
2653 / 2135 / 726
Регистрация: 12.05.2014
Сообщений: 7,450
Завершенные тесты: 1
09.01.2017, 14:34 #2
передавать в эти методы ссылку на активити и использовать ее вместо this и на ней вызывать getSharedPreferences
0
shavuz
114 / 120 / 25
Регистрация: 29.01.2014
Сообщений: 596
09.01.2017, 16:55 #3
а в первом случае не пробовали getActivity()? или getContext()? или можно передать классу контекст через констрактор
0
JerryLetehen
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 234
09.01.2017, 18:35 #4
Цитата Сообщение от leonardo666 Посмотреть сообщение
Как обращаться к одной и тойже переменой из разных классов ?
Я пользуюсь банальным импортированием, у меня работает:
Java
1
import static com.example.jerryletehen.nameofapp.MainActivity.your_variable;
0
demixdn
288 / 235 / 70
Регистрация: 31.10.2016
Сообщений: 563
09.01.2017, 20:00 #5
JerryLetehen, вы верно шутите? А если "com.example.jerryletehen.nameofapp.MainActivity" умрет или еще не будет создана, а вы обратитесь в вашей переменной "your_variable"? Это я в контексте SharedPreferences говорю, которому для инициализации нужен Context.
Для примитивных типов это конечно подойдет, просто вернется значение по умолчанию.
0
JerryLetehen
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 234
09.01.2017, 20:30 #6
Цитата Сообщение от demixdn Посмотреть сообщение
умрет или еще не будет создана
Не могу представить такой вариант развития событий, что я где-то сохраняю переменную при помощи sharedpreferences, и не загрузив её, начинаю использовать... Толку тогда с sharedPreferences? я имею ввиду, что если я использую sharedPreferences, значит я загружаю данные, сохранённые мною, соответственно обновляю нужные мне переменные/вьюшки и т.д. А значит, обратившись из другого класса к переменной, я получу её обновлённое значение. Ну, а в ином случае... да - конструктор)
0
demixdn
288 / 235 / 70
Регистрация: 31.10.2016
Сообщений: 563
09.01.2017, 20:52 #7
leonardo666, юзайте для храненияSharedPreferenceHelper

JerryLetehen, как ваш код поведет себя при таком кейсе: создали активити1, в ней в переменную записали значение, далее пошли в активити2, и далее в активитиN, где вам понадобилось значение из активити1. Далее свернули приложение и стали пользоваться другими. После этого разворачиваете приложение, а система в это время убила активити1. Какое значение будет в вашей переменной?
0
JerryLetehen
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 234
09.01.2017, 20:54 #8
Цитата Сообщение от demixdn Посмотреть сообщение
Какое значение будет в вашей переменной?
Значению по умолчанию, полагаю. Но как тогда поступать? видимо нужен метод загрузки сохранённых данных в каждом активити?
0
demixdn
288 / 235 / 70
Регистрация: 31.10.2016
Сообщений: 563
09.01.2017, 20:59 #9
JerryLetehen, класс утилита, примерно как SharedPreferenceHelper, что выше. либо загруженные данные складывать в класс хранилище данных, либо уже в базу данных, либо на диск записывать в виде файла. но легче всего через SharedPreference
1
09.01.2017, 20:59
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2017, 20:59
Привет! Вот еще темы с решениями:

Array в SharedPreferences
Добрый вечер! Вопрос заключается в том, можно ли сохранить настройки приложения...

SharedPreferences, HashMap
Хочу сделать Save , Load в sharedPreferences и вывести результат в Log. не...

Сохранение в SharedPreferences
Вобщем, я хочу сделать так, чтобы при нажатии на кнопку создавалась на экране...

В геттере не работает SharedPreferences
в главной активности происходит действие игры, игра разбита на раунды, в...


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

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

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