Добрый всем вечер! Помогите, пожалуйста, разобраться в этой теме - совсем запуталась ((. Буду рассказывать по пунктам что и как я поняла, чтобы ещё и вас не запутать
1. getPreferences использую если данные будут сохраняться и применяться только в одной Activity, getSharedPreferences - если буду сохранять в данной Activity, а использовать из разных в рамках своего приложения.
Отсюда вопрос 1. - - при использовании getSharedPreferences в каких случаях создаются разные объекты и файлы?
2. вот этой строке объявляю объект класса, тут я могу его назвать как захочу.
3. Вот в этой строке
- получаю тот самый объект от класса,
4. а если вот так
Код: Выделить всё
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
- то ещё и говорю как будет называться файл, в котором данные сохранятся.
5. здесь объявляется строка
и отсюда же и начинается каша!!!
2 вопрос. почему final?
3 вопрос. String всегда пишется или есть другие варианты? Если да, то какие и когда применяются?
4 вопрос. SAVED_TEXT - наименование переменной, что здесь можно писать и где ещё это наименование используется в дальнейшем?
5 вопрос. "saved_text" - значение, это просто название как в паре ключ-значение?
6.
saveText – сохранение данных.
этот метод для сохранения данных. Для автоматического сохранения при закрытии приложения правильнее всего писать в
Код: Выделить всё
@Override protected void onPause() { saveText(); super.onPause(); }
7. используется для загрузки данных. И если нужно чтобы при открытии она происходила автоматически то вызываем его в onCreate.
6. вопрос а если не надо отображать данные на экране, то тогда где вызывать?
8. Здесь непосредственно говоришь откуда и что и куда сохранять.
Код: Выделить всё
void saveText() {
sPref = getPreferences(MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(SAVED_TEXT, etText.getText().toString());
ed.commit();
Toast.makeText(this, "Text saved", Toast.LENGTH_SHORT).show();
}
7 вопрос. если мне нужно сохранять данные, полученные из запроса, к примеру, то что писать в следующем отрывке?
Код: Выделить всё
private synchronized void parsingDataInView(JSONArray jsonArray) { (jsonArray.getJSONObject(0).has("place")) {
JSONObject jsonObject = jsonArray.getJSONObject(0);
Вариант А. полностью предыдущий код.
Вариант Б. только saveText(); , но он же пишется в onPause
!!!
Вариант В. как-то иначе...
Ну и собственно тоже самое и с loadText();
P.S. Код уже написала, он даже работает, но это всё скорее на интуитивном уровне, а хотелось бы понять как правильно, так что буду благодарна если кто-то всё-таки сможет объяснить что к чему!