В моем приложении я пытаюсь сохранить ArrayList of Strings.У меня есть Избранное деятельности, которая имеет метод add()
.Этот метод вызывается в другом Activity для добавления чего-либо в ArrayList.Я хочу, чтобы каждый раз, когда что-то добавлялось, он сначала получает все значения, которые я сохранил в SharedPreferences
, проверяет, не существует ли это значение, а если нет, добавляет его в ArrayList.Наконец, я хочу снова сохранить все значения в SharedPreferences
.Когда вызывается Activity Favorites, он показывает список со всеми избранными (получает каждое значение в базе данных и все такое).
Итак, я создал метод, но onCreate()
никогда не вызывается, когдаэлемент добавлен в ArrayList, я не могу создать экземпляр моего SharedPreferences
.Есть кто-нибудь, кто может дать мне несколько советов, чтобы заставить это работать?
Примечание: я не хочу работать с базой данных SQLite, потому что это будет только для одного класса в моем приложении и будет содержать очень мало значений.
Кроме того, код Iиспользуется:
public void add(String v, String k){
prefs = PreferenceManager.getDefaultSharedPreferences(this);
int countvaca = prefs.getInt("vacacount", 0);
int countkantoor = prefs.getInt("kantoorcount", 0);
for(int i = 0; i <countvaca; i++){
vaca.add(prefs.getString("Vaca"+i, null));
}
for(int j = 0; j <countkantoor; j++){
kantoor.add(prefs.getString("Kantoor"+j, null));
}
boolean blnFound = vaca.contains(v);
System.out.println("Does arrayList contain vacature ? " + blnFound);
if(!blnFound){
vaca.add(v);
kantoor.add(k);
}
Editor edit = prefs.edit();
countvaca = vaca.size();
countkantoor = kantoor.size();
edit.putInt("Vacaturelijstgrootte", countvaca);
edit.putInt("Kantoorlijstgrootte", countkantoor);
for(int a = 0; a<countvaca; a++){
edit.putString("Vaca"+a, vaca.get(a));
}
for(int b = 0; b< countkantoor; b++){
edit.putString("Kantoor"+b, kantoor.get(b));
}
edit.commit();
}