Возможный дубликат:
массив строк в SharedPreferences
Я новичок в Android и хотел бы изучить, как сохранять и извлекать String[] из настроек. На данный момент у меня есть два образца кода. Этот для экономии
void saveText() {
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
Editor ed = sPref.edit();
ed.putString(SAVED_TEXT, position_name);
ed.commit();
}
и position_name поступило как ввод EditText. Сначала он должен быть сохранен в массиве строк, а затем массив строк сохранен в настройках. Для загрузки у меня есть следующий код
void loadText() {
sPref = getSharedPreferences("MyPref", MODE_PRIVATE);
String position_name = sPref.getString(SAVED_TEXT, "");
bazar.add(new Bazar(position_name, R.drawable.unread));
}
оба метода являются статическими, но я хочу, чтобы они работали с данными динамического типа String. Короче говоря, я набираю некоторые данные, которые должны храниться в массиве строк, а затем в массиве строк, хранящемся в настройках, и когда я загружаю свою активность, я хочу, чтобы эти сохраненные данные были извлечены. Пробовал разные подходы - результата нет. Можете ли вы помочь мне в этом?
Ответ 1 · рейтинг 1 · G M Ramesh
Вы можете хранить набор строк, используя SharedPreferences в API уровня 11 и выше. См. getStringSet() и putStringSet()
На уровне API до 11 вы можете использовать какой-то хак. Например, если вам нужно сохранить массив строк под ключом "stringArray", вы можете сохранить каждую строку из массива, используя putString и ключи "stringArray.1", "stringArray.2" и т.д.
Ответ 2 · Rushabh Patel
сохраните его как строку с помощью разделителя (запятая), а при извлечении просто используйте split()
string str="";
str += "item1,";
.
.
установите String str в свой SharePreference и commit() Чтобы получить то же самое в массиве: получите prefStr из SharePreference
String[] Array= prefStr.split(",");
Надеюсь, это поможет вам.
Ответ 3 · mango
Вы не можете, поскольку общие префы поддерживают только примитивные переменные, по крайней мере, не можете ни для чего в API 11. Для того, что ниже, вы можете сделать, это пошагово пройти через массив и поместить его индивидуально, как здесь http://www.sherif.mobi/2012/05/string-arrays-and-object-arrays-in.html?m=1
Что я лично делаю, так это сериализую объект, который, я думаю, приводит его к 0 и 1. Затем вы положили это туда. Вам нужно получить класс сериализации или создать его самостоятельно Сохранить ArrayList в SharedPreferences
стыдно однако. Простой поиск дал бы вам эти результаты