2016-09-09 4 views
0

putStringSet API를 통해 SharedPreferences의 스택을 SharedPreferences에 저장하려고했습니다. 쓰기 방법에 SharedPreferences에 스택을 저장하는 방법

, 나는이 작업을 수행합니다 SetgetStringSet(KEY, null) : 나는 읽을 때 putStringSet(KEY, new LinkedHashSet(stack));

, 나는이 작업을 수행.

나는 Collections.reverse(list)을 사용하여 목록으로 변환하고 모든 요소를 ​​스택으로 반전합니다.

SharedPreferences에 글을 쓸 때 상황이 좋지만 읽을 때 요소의 순서가 완전히 엉망입니다.

아이디어가 있으십니까?

+0

스택의 요소 유형은 무엇입니까? –

+0

스택에 단지 – sr09

+0

이라는 문자열이 있는데, Set 대신 LinkedHashSet에 넣지 않으면 삽입 된 순서를 유지할 수 있습니다. – Lazai

답변

4

스택 요소를 쉼표로 구분 된 String으로 변환 한 다음 putString을 사용하여 저장할 수 있습니다. 당신의 스택이 포함되어있는 경우

예를 들어, 다음

| "4" | 
| "3" | 
| "2" | 
| "1" | 
| "0" | 
------- 

당신은 문자열 "0,1,2,3,4"로 변환하고 SharedPreferences에 저장해야합니다.

스택을 다시 작성하려면 SharedPreferences에서 문자열을 가져온 다음 쉼표 구분 기호로 분리하고 스택에 순서대로 밀어 넣으십시오.

+0

예, 답변으로 게시하려고했습니다. 감사 – sr09

1

SharedPreferences은 아마도 최상의 솔루션이 아닙니다. 플랫 파일이나 데이터베이스를 사용하면 더 효과적입니다. 즉, 값을 개별적으로 저장하고 각 요소에 대한 키를 프로그래밍 방식으로 생성하여이 작업을 수행 할 수 있습니다.

관련 문제