Есть метод, где я сохраняю значения нажатого элемента в моём recyclerView:
private void saveFavorites(int position) {
String name = personCategories.get(position);
SharedPreferences sp = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
editor.putString(Constants.KEY_SP, name);
editor.apply();
}
После чего получаю данные в другом фрагменте следующим образом:
private String getFavorites() {
SharedPreferences sp = getActivity().getPreferences(Context.MODE_PRIVATE);
return sp.getString(Constants.KEY_SP, null);
}
Загвоздка в том, что я получаю лишь один какой-то элемент, на который нажал последнем в списке. Как сделать так, чтобы он отображался в виде массива? И все элементы, на которые я нажал, добавлялись во второй фрагмент?
Как вариант попробуйте Ваши строки преобразовать и сохранить в json в методе saveFavorites с помощью библиотеки gson.
После этого получите Ваши строки JSON в методе getFavorites.
Хороший пример описан здесь. Надеюсь поможет.
Как вариант, используйте getStringSet/putStringSet
.
В первом фрагменте код усложнится, надо будет считать, добавить и перезаписать набор строк.
Сохраняется только последнее значение, так как Вы сохраняете все значения с одним ключом и, соответственно, последующая запись перезаписывает предыдущую.
Как (плохой) вариант, можете сохранять список значений, а не одно значение.
Но, вообще говоря, SharedPreferences
не предназначены для хранения подобного рода данных, о чем Вам уже много раз тут говорили.
public class DataManager { //пример синглтона
private static List<Data> mDataList;
private static SettingsDataManager sInstance;
private DataManager() {
}
public static DataManager getInstance() {
if (sInstance == null) {
synchronized (DataManager.class) {
mInstance = new DataManager();
}
}
return sInstance;
}
public void saveData(List<Data> data) {
mDataList = data;
}
public List<Data> restoreData() {
return mDataList;
}
}
А что мешает создать синглтоном отдельный класс, который будет хранить эти данные, и любой другой фрагмент или адаптер, или что угодно смогут к нему обратиться, а внутри хранить любые коллекции?
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
собственно можно ли юзать интернационализацию через набор файлов с ресурсами без jsp? в частности интересует angular 2если да, то можно пожалуйста...
Проверяю кучу файлов (>1000) на наличие их на FireBase StorageДля проверки регистрирую Listener:
Привет! Есть SpringMVC проект, есть данные, которые по клику на кнопку выкачиваются в Excel файл