내 응용 프로그램에서 String의 ArrayList를 저장하려고합니다. 나는 add()
방법을 가진 활동 즐겨 찾기를 가지고있다. 이 메서드는 다른 Activity에서 ArrayList에 무언가를 추가하기 위해 호출됩니다. 그 때마다 무언가가 추가 될 때마다, 내가 먼저 SharedPreferences
에 저장 한 모든 값을 얻고, 값이 이미 존재하지 않는지 확인하고, 그렇지 않다면 ArrayList에 추가합니다. 마지막으로 모든 값을 SharedPreferences
에 다시 저장하겠습니다. 활동 즐겨 찾기가 호출되면 즐겨 찾기가 모두 포함 된 목록이 표시됩니다 (데이터베이스의 모든 값과 모든 값을 가져옵니다).onCreate()에서 호출되지 않는 메서드에서 SharedPreferences를 사용할 수 없습니까?
그래서 메소드를 만들었지 만, onCreate()
은 ArrayList에 항목이 추가 될 때 절대 호출되지 않으므로 SharedPreferences
을 인스턴스화 할 수 없습니다. 이 일을 위해 몇 가지 힌트를 줄 수있는 사람이 있습니까?
참고 : SQLite 데이터베이스로 작업하고 싶지 않습니다. 왜냐하면 내 응용 프로그램에서 단 하나의 클래스 일 뿐이므로 아주 작은 값만 포함하기 때문입니다. 에서 onCreate 다음 호출되지 없구요 경우
이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();
}
어떤 종류의 오류 메시지가 있습니까? 아마 그것을 추가하는 것이 가장 좋습니다. – Stephan