Урок 33. Хранение данных. Preferences.
Re: Урок 33. Хранение данных. Preferences.
так есть рут или нет?
дело в том, Что рут удобно иметь при отладке - видно все! можно базу данных сразу посмотреть, если исползьуется и так далее. Ну и из этого понимаешь, чем опасен рут на устройствах? любой (любая программа) может просмотреть и изменить любые данные в любых папках..
дело в том, Что рут удобно иметь при отладке - видно все! можно базу данных сразу посмотреть, если исползьуется и так далее. Ну и из этого понимаешь, чем опасен рут на устройствах? любой (любая программа) может просмотреть и изменить любые данные в любых папках..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 33. Хранение данных. Preferences.
как это проще проверить? В настройках не нашёл ничего похожего
в интернете нашёл такой вариант, не сказал бы, что удобный, т.к. требует установки дополнительного приложения
в интернете нашёл такой вариант, не сказал бы, что удобный, т.к. требует установки дополнительного приложения
Re: Урок 33. Хранение данных. Preferences.
ну лучше тогда попробовать загрузить программу ADB wifi Их там несколько разных, требует рут. От нее хоть польза будет, если установится - можно отлаживать приложения по вайфаю без проводов.
А вообще, просто посмотреть в эксплорере папки других приложений (data\data\приложение\database), если в них раскрываются все файлы, включая базы данных, то рут определенно имеется.
А вообще, просто посмотреть в эксплорере папки других приложений (data\data\приложение\database), если в них раскрываются все файлы, включая базы данных, то рут определенно имеется.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 33. Хранение данных. Preferences.
Вопрос: как использовать этого зверя в пользовательском классе? Наследовать класс от активити не особо хочется, ближайшее что есть по иеррархии от Objecta и с чем он соглашается дружить это ContextWrapper, ему нужен получается контекст? но тогда что передавать конструктору - контекст приложения? как-то велосипедно...
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 33. Хранение данных. Preferences.
Нужно передавать контекст в конструктор пользовательского класса.Al.x писал(а):Вопрос: как использовать этого зверя в пользовательском классе?
И не получится (работать не будет).Al.x писал(а):Наследовать класс от активити не особо хочется...
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 33. Хранение данных. Preferences.
от кого лучше наследовать? как я и написал?
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 33. Хранение данных. Preferences.
Созданием объектов, наследников ContextWrapper, должна заниматься система.
Передавайте контекст в пользовательский класс через конструктор - это самое правильное решение.
Передавайте контекст в пользовательский класс через конструктор - это самое правильное решение.
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 33. Хранение данных. Preferences.
дело в том, что getSharedPreferences наотрез отказывается работать, если класс не унаследован от контекстосодержащего базового класса: "The method getSharedPreferences(String, int) is undefined for the type MyClass" Object ему не катит, только
ContextWrapper.
поэтому если не от ContextWrapper, то вопрос остается - от кого лучше наследовать?
нужен класс, инкапсулирующий объект SharedPreferenses и всякие издевательства над ним: загрузить/сохранить и пр.
класс примерно такой:
п.с. почему кстати так категорично про ContextWrapper, у меня с ним работает...пока, может есть подводные камни - расскажите, интересно ведь.
п.п.с. кстати, rezak90, где-то в этом топике грозился показать свою реализацию, интересно будет взглянуть
ContextWrapper.
поэтому если не от ContextWrapper, то вопрос остается - от кого лучше наследовать?
нужен класс, инкапсулирующий объект SharedPreferenses и всякие издевательства над ним: загрузить/сохранить и пр.
класс примерно такой:
Код: Выделить всё
public class CookiesStorage extends ContextWrapper {
private SharedPreferences CookiesFileStorage;
private BasicCookieStore cookieStore = new BasicCookieStore();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
public CookiesStorage(Context context, BasicCookieStore DefaultCookieStore) {
super(context);
cookieStore = DefaultCookieStore;
CookiesFileStorage = getSharedPreferences("CCStrg", Activity.MODE_PRIVATE);
}
private void SaveCookieEntity(String ccField, String ccData) {
Editor ed = CookiesFileStorage.edit();
ed.putString(ccField, ccData);
ed.commit();
...
}
п.п.с. кстати, rezak90, где-то в этом топике грозился показать свою реализацию, интересно будет взглянуть
Re: Урок 33. Хранение данных. Preferences.
та не сочиняйте, я из потока выводила в преференсы, читала оттуда и ничего.. просто нужно передать контекст и все.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 33. Хранение данных. Preferences.
при чем здесь поток? речь о создании класса-обертки.
я не сочиняю, это ребята сочиняли когда ООП придумывали, а мы теперь расхлебываем:)
я не сочиняю, это ребята сочиняли когда ООП придумывали, а мы теперь расхлебываем:)
Re: Урок 33. Хранение данных. Preferences.
Al.x писал(а):при чем здесь поток?
Потому что поток - это пример класса, которыйAl.x писал(а):дело в том, что getSharedPreferences наотрез отказывается работать, если класс не унаследован от контекстосодержащего базового класса
не унаследован от контекстосодержащего базового класса
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 33. Хранение данных. Preferences.
Да ладно? Могу даже сказать почему, по тому, что getSharedPreferences - это метод класса Context.Al.x писал(а):дело в том, что getSharedPreferences наотрез отказывается работать, если класс не унаследован от контекстосодержащего базового класса
Так, должно работать:
Код: Выделить всё
public class CookiesStorage {
private SharedPreferences mCookiesFileStorage;
private BasicCookieStore mCookieStore = new BasicCookieStore();
SimpleDateFormat mDateFormat = new SimpleDateFormat("yyyy-MM-dd");
public CookiesStorage(Context context, BasicCookieStore defaultCookieStore) {
mCookieStore = DefaultCookieStore;
mCookiesFileStorage = context.getSharedPreferences("CCStrg", Context.MODE_PRIVATE);
}
private void SaveCookieEntity(String ccField, String ccData) {
Editor ed = mCookiesFileStorage.edit();
ed.putString(ccField, ccData);
ed.commit();
...
}
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 33. Хранение данных. Preferences.
я не обратил на это внимание, просто тупо подставлял классы по иерархии, начиная с Object, пока анализатор не перестал ругаться - не хотелось наследовать от "тяжелого" класса.KamiSempai писал(а):Да ладно? Могу даже сказать почему, по тому, что getSharedPreferences - это метод класса Context.
в общем, если я вас обоих правильно понял - лучше наследовать от потока и/или его потомков, например, AsyncTask.
Последний раз редактировалось Al.x 20 окт 2013, 19:59, всего редактировалось 1 раз.
Re: Урок 33. Хранение данных. Preferences.
да нет же! лучше в конструктор передать контекст из активити, или контекст приложения, и использовать любые методы контекста откуда угодно.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 33. Хранение данных. Preferences.
конструктор моего класса, верно?
я просто не могу добиться от вас ответа на вопрос - какой БАЗОВЫЙ класс брать:
public class MyClass extends ???
p.s. про передачу контекста - безусловно, вы правы, посмотрите мой код выше. напишите свое объявление класса и все станет ясно.
я просто не могу добиться от вас ответа на вопрос - какой БАЗОВЫЙ класс брать:
public class MyClass extends ???
p.s. про передачу контекста - безусловно, вы правы, посмотрите мой код выше. напишите свое объявление класса и все станет ясно.
- KamiSempai
- Сообщения: 1339
- Зарегистрирован: 17 фев 2012, 21:23
- Откуда: Мордор
Re: Урок 33. Хранение данных. Preferences.
В моем примере это класс ObjectAl.x писал(а):я просто не могу добиться от вас ответа на вопрос - какой БАЗОВЫЙ класс брать:
public class MyClass extends ???
R.id.team
Хватит таскать макулатуру на тренировку! Используй T Note.
Хватит таскать макулатуру на тренировку! Используй T Note.
Re: Урок 33. Хранение данных. Preferences.
о, тебе же Денис полный код класса дал уже, ничего он не extends, или extends что угодно (вернее, что необходимо).
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
Re: Урок 33. Хранение данных. Preferences.
сори, не заметил, думал меня процитировал...
вопрос закрыт, всем спасибо.
кстати, посмотрел ваш сайт, заинтересовало...
вопрос закрыт, всем спасибо.
кстати, посмотрел ваш сайт, заинтересовало...
-
- Сообщения: 14
- Зарегистрирован: 19 ноя 2013, 03:48
Re: Урок 33. Хранение данных. Preferences.
Я уже просто не знаю что делать!!!!
По непонятной мне причине не сохраняется(или не загружается) строка.
Я её вроде бы записываю в преференс, но обратно она не читается - берется дефолтное значение.
При чем только одна строка(я её отметил коментами), остальные работают правильно.
Помогите кто может, вот код:
@Override
protected void onResume() {
sPref = getPreferences(MODE_PRIVATE);
tvNumText = sPref.getString(TVNUMS_SAVED_TEXT, "");
opText = sPref.getString(TVOPERATIONS_SAVED_TEXT, "");
flag = sPref.getInt(FLAG_SAVED_VALUE, 0);
eqFlag = sPref.getBoolean(EQFLAG_SAVED_VALUE, false);
bufOperStr = sPref.getString(BUF_OPERATIONS, ""); // ВОТ ТУТ НЕ ЧИТАЕТСЯ
Log.d("myLogs", "onResume: " + bufOperStr);
setText();
super.onResume();
}
@Override
protected void onPause() {
for (int i = 0; i < bufOperations.size(); i++) {
bufOperStr += bufOperations.get(i);
}
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(TVNUMS_SAVED_TEXT, tvNums.getText().toString());
ed.putString(TVOPERATIONS_SAVED_TEXT, tvOperations.getText().toString());
ed.putString(BUF_OPERATIONS, bufOperStr); //ИЛИ ТУТ НЕ ЗАПИСЫВАЕТ
ed.putInt(FLAG_SAVED_VALUE, flag);
Log.d("myLogs", "onPause: " + bufOperStr);
ed.commit();
super.onPause();
}
По непонятной мне причине не сохраняется(или не загружается) строка.
Я её вроде бы записываю в преференс, но обратно она не читается - берется дефолтное значение.
При чем только одна строка(я её отметил коментами), остальные работают правильно.
Помогите кто может, вот код:
@Override
protected void onResume() {
sPref = getPreferences(MODE_PRIVATE);
tvNumText = sPref.getString(TVNUMS_SAVED_TEXT, "");
opText = sPref.getString(TVOPERATIONS_SAVED_TEXT, "");
flag = sPref.getInt(FLAG_SAVED_VALUE, 0);
eqFlag = sPref.getBoolean(EQFLAG_SAVED_VALUE, false);
bufOperStr = sPref.getString(BUF_OPERATIONS, ""); // ВОТ ТУТ НЕ ЧИТАЕТСЯ
Log.d("myLogs", "onResume: " + bufOperStr);
setText();
super.onResume();
}
@Override
protected void onPause() {
for (int i = 0; i < bufOperations.size(); i++) {
bufOperStr += bufOperations.get(i);
}
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(TVNUMS_SAVED_TEXT, tvNums.getText().toString());
ed.putString(TVOPERATIONS_SAVED_TEXT, tvOperations.getText().toString());
ed.putString(BUF_OPERATIONS, bufOperStr); //ИЛИ ТУТ НЕ ЗАПИСЫВАЕТ
ed.putInt(FLAG_SAVED_VALUE, flag);
Log.d("myLogs", "onPause: " + bufOperStr);
ed.commit();
super.onPause();
}
Re: Урок 33. Хранение данных. Preferences.
во-первых, форматируй код, уважай других
во-вторых, просто скачай с планшета данный файл и посмотри, все ли в нем в порядке.
во-вторых, просто скачай с планшета данный файл и посмотри, все ли в нем в порядке.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198