2013-02-10 1 views
0

내 앱은 주 Activity의 ListView에 게시되는 사용자 정의 Food 객체의 ArrayList를 저장합니다. 애플 리케이션의 ListView 부분은 완벽하게 작동하지만 SharedPreferences간에이 Food 객체를 저장하고로드하는 데 문제가 있습니다.StringSet는 SharedPreferences에 저장 /로드하지 않습니다.

각각의 속성을 String으로 저장하고 StringSet에 저장하고 putStringSet 함수를 통해 각각 저장하는 방법으로이 Food 객체를 SharedPreferences에 저장합니다. 앱이 다시 시작되면 SharedPreferences의 각 StringSet을 읽고 속성을 읽은 새 Food 항목을 만든 다음 각 속성을 ArrayList에 추가합니다. 코드가 작동해야하지만 세션간에 데이터가로드되지 않는 것처럼 보입니다. 아무도 내가 왜 알아낼 수 있습니까? 고맙습니다!

Code removed 
+0

여기서 foodNamesSet 변수를 인스턴스화하지 않습니다. 따라서 check if (foodNamesSet! = null)은 항상 false를 반환합니다. 다른 세트에도 동일하게 적용됩니다. 게다가, 당신은 onStop()에서 onpause 논리를 사용해야한다고 생각합니다. –

+0

@ NazarMerza 이것입니다. 고마워요! Set을 HashSet으로 인스턴스화하고 SharedPrefs 액세스 라인을 변경하여 아무것도 발견되지 않은 경우 새로운 HashSet 을 작성해야했습니다. 답변을이 글에 게시하면 답변으로 승인됩니다. – Argus9

답변

1

foodNamesSet 변수를 인스턴스화하지 않는 것처럼 보입니다. 따라서 check if (foodNamesSet! = null)은 항상 false를 반환합니다. 같은 것은 다른 세트에도 적용됩니다. 게다가, 당신은 onStop() 대신에 onPause()에서 로직을 수행해야한다고 생각합니다.

관련 문제