마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

shared preferences 키값을 배열로

0 추천
sharedpreferences 에서

키값을 배열로 할 수 있는 방법이 있을까요?

1, NAME, PHONE, SEX

2. NAME, PHONE, SEX

3. NAME, PHONE, SEX

...

{ 이름, 전화번호, 성별 } 은 공통이고, 각각 구분을 짓고 싶습니다.

데이터가 많은 편이 아니라서 간편하게 sharedpreferences 를 생각하고 있습니다. (50개 미만)

키값을 1_NAME, 1_PHONE, 1_SEX 방식으로 할 수 있는 방법이 있는지 궁금합니다.

[i]_NAME, [i]_PHONE, [i]_SEX 로 쉽게 추가하고 삭제하고 검색할 수 있을 것 같은데,

좋은 아이디어가 있을까요

선배님들의 조언 부탁드리겠습니다.
익명사용자 님이 2016년 6월 21일 질문

1개의 답변

0 추천
 
채택된 답변
저의 경우 settter와 getter를 가진 전용 클래스를 만들어 배열을 String으로 변환해서 저장하고, 로드 합니다.

아래는 index 값을 키로 하여 사용하게 한 예제입니다.

exception 처리는 안했으니. 적당히 넣어주세요..

public class SaveData {

 private static final String SEP = "@#@"; // 구분자입니다. 각 데이터의 끝을 구분하기 위해 임으로 넣은 값으로  적당히 넣으면 됩니다.

 String mIndex;
 String mName;
 String mPhone;
 String mSex;

 public SaveData(String index, Strng name, String phone, String sex) { // 생성자입니다.
   mIndex = index;
   mName = name;
   mPhone = phone;
   mSex = sex;
 }

 public SaveData(String saveDataString) {  // Sharedpreferences에서 나온 String을 가지고 배열 정보를 Load하는 생성자입니다.
   String[] saveData =  saveDataString.split(SEP);
   mIndex = saveData[0];
   mName = saveData[1];
   mPhone = saveData[2];
   mSex = saveData[3];

 }

 public String getSaveDataString() { // sharedpreferences에 저장할 String을 만드는 메소드 입니다.
    return mIndex + SEP +  mName + SEP + mPhone + SEP + mSex;
 }

}
사악미소 (65,330 포인트) 님이 2016년 6월 21일 답변
...