Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
3 / 3 / 0
Регистрация: 16.09.2016
Сообщений: 164
1

SharedPreferences в другом классе

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

Author24 — интернет-сервис помощи студентам
Здравствуйте. Вопрос такой.
есть основной класс 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
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.01.2017, 14:22
Ответы с готовыми решениями:

Как получить данные из Room в другом классе (Package один)
Только начал изучать Room, не имею никакого представления о получении данных из Room. Помогите,...

Как использовать объект класса, созданого в определеном классе, в другом классе
У меня такой вопрос,как использовать объект класса,созданого в определеном классе,в другом классе.У...

Как использовать информацию парсированую в 1 классе в другом классе
имеются 2 класса , объясните плз в чём ошибка using System; using System.Collections.Generic;...

Переменная изменилась в одном классе, куда "воткнуть" код в другом классе
Привет всем, Достало это событийное программирование. :wall: Я не делаю событийные "калькуляторы"...

8
2883 / 2295 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
09.01.2017, 14:34 2
передавать в эти методы ссылку на активити и использовать ее вместо this и на ней вызывать getSharedPreferences
0
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 609
09.01.2017, 16:55 3
а в первом случае не пробовали getActivity()? или getContext()? или можно передать классу контекст через констрактор
0
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 237
09.01.2017, 18:35 4
Цитата Сообщение от leonardo666 Посмотреть сообщение
Как обращаться к одной и тойже переменой из разных классов ?
Я пользуюсь банальным импортированием, у меня работает:
Java
1
import static com.example.jerryletehen.nameofapp.MainActivity.your_variable;
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.01.2017, 20:00 5
JerryLetehen, вы верно шутите? А если "com.example.jerryletehen.nameofapp.MainActivity" умрет или еще не будет создана, а вы обратитесь в вашей переменной "your_variable"? Это я в контексте SharedPreferences говорю, которому для инициализации нужен Context.
Для примитивных типов это конечно подойдет, просто вернется значение по умолчанию.
0
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 237
09.01.2017, 20:30 6
Цитата Сообщение от demixdn Посмотреть сообщение
умрет или еще не будет создана
Не могу представить такой вариант развития событий, что я где-то сохраняю переменную при помощи sharedpreferences, и не загрузив её, начинаю использовать... Толку тогда с sharedPreferences? я имею ввиду, что если я использую sharedPreferences, значит я загружаю данные, сохранённые мною, соответственно обновляю нужные мне переменные/вьюшки и т.д. А значит, обратившись из другого класса к переменной, я получу её обновлённое значение. Ну, а в ином случае... да - конструктор)
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.01.2017, 20:52 7
leonardo666, юзайте для храненияSharedPreferenceHelper

JerryLetehen, как ваш код поведет себя при таком кейсе: создали активити1, в ней в переменную записали значение, далее пошли в активити2, и далее в активитиN, где вам понадобилось значение из активити1. Далее свернули приложение и стали пользоваться другими. После этого разворачиваете приложение, а система в это время убила активити1. Какое значение будет в вашей переменной?
0
14 / 14 / 2
Регистрация: 07.11.2015
Сообщений: 237
09.01.2017, 20:54 8
Цитата Сообщение от demixdn Посмотреть сообщение
Какое значение будет в вашей переменной?
Значению по умолчанию, полагаю. Но как тогда поступать? видимо нужен метод загрузки сохранённых данных в каждом активити?
0
314 / 257 / 81
Регистрация: 31.10.2016
Сообщений: 619
09.01.2017, 20:59 9
JerryLetehen, класс утилита, примерно как SharedPreferenceHelper, что выше. либо загруженные данные складывать в класс хранилище данных, либо уже в базу данных, либо на диск записывать в виде файла. но легче всего через SharedPreference
1
09.01.2017, 20:59
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2017, 20:59
Помогаю со студенческими работами здесь

Нужно вызвать через сторонний метод(в другом классе,который в другом файле) метод в форме
public void Print_Inform(int numb1,int znak,int numb2) { switch(znak) { case 1:...

TextBox в другом классе
Допустим есть такой класс: public class Class1 { public System.Windows.Forms.TextBox...

Переменная в другом классе
У меня есть два класса: AuthorizationForm и SendMailForm. как мне сделать, чтобы textBox.Text из...

Переменная в другом классе
Есть код: class ChartPane extends JPanel { public static String formula = null; public...

Управление в другом классе
Ребят у меня есть объект основанный на одном из моих классов gameM = new GameMenu(); Тут...

Label в другом классе
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru