Раньше у меня была та же самая нулевая проблема
Вот как я решил ее
У меня есть arrayList с именем language
language = new ArrayList<String>
Мне пришлось добавить все, что пользователь пишет в тексте редактированияпри нажатии кнопки, не повторяя никакого избыточного значения
if(!language.contains(value)) {
language.add(value);
}
Чтобы сохранить этот массив, я создал hashSet
Set<String> set = new HashSet<String>();
и сохранил все из них onPause
set.addAll(language);
.putStringSet("yourKey", set);
.commit();
и извлеките его обратно в language
список массивов onCreate
prefs=this.getSharedPreferences("yourPrefsKey",Context.MODE_PRIVATE);
edit=prefs.edit();
set = prefs.getStringSet("yourKey", null);
language = new ArrayList<String>(set);
edit.remove("yourKey").commit();
не забудьте удалить каждый раз, или он снова создаст ноль