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

SharedPreferences 사용법에 대해 궁금합니다

0 추천

 주석대로 SharePreferences 를 사용하려고 합니다.

여기가 사용한 부분이구요.

 

제가 SharedPreferences 를 잘못이해하고, 사용을 잘못하고 있는것인지.. 잘모르겠습니다ㅠㅠ

사용자가 입력한 이름데이터를 저장하고, 앱을 껏다켜도 사용자가 입력한 이름을 계속 출력하고 싶습니다.

앱이라면 정말 당연한 기능인데... 구현을 못하고 있어서 답답해요ㅠㅠ

어디서 잘못된건가요? 어느부분이 잘못쓰여진걸까요? 초보라 어디가 문제인지 잘 잡아내지도 못하겠어요.....

지여니 (580 포인트) 님이 2013년 8월 13일 질문
savePreference 와 getPreference 에서 info,nam 을 Log  찍어보시면
답을 찾기 쉬울꺼에요

2개의 답변

0 추천
 
채택된 답변

SharedPreference를 아직 잘 이해 못하고 계신게 맞네요

필요한 내용을 임시 저장 공간(파일)에 저장했다가, 필요할 때 다시 꺼내서 쓰는방식입니다.

내부적으로 '키 + 값'으로 저장되어 있구요.

 

NAME이라는 키로 info를 저장하셨으니(savePreferences)

NAME이라는 키를 가져오면 저장했던 값인 info를 꺼내서 쓸 수 있게 되는겁니다.(getPreferences)

 

onClick 이벤트에서 info 라는 값을 세팅해주고 editText에 setText해주었으니 저 작업이 완료된 후

savePreferences()를 호출하는게 맞겠지요. 따라서 onClick은 다음과 같이 수정합니다.

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
     digEdtName = (EditText) dialogview.findViewById(R.id.edit);
     info = digEdtName.getText().toString();
     name.setText(info);
     savePreferences();
}
 

다음은 껐다가 다시 켰을때 다이얼로그가 생성되면 editText에 저장했던 이름이 나와야 하니

다이얼로그를 만들고 editText를 생성하고 초기화 한 다음 코드 부분에 다음 코드가 들어가야합니다.

getPreferences();

digEdtName.setText(nam); 

(이 부분은 다이얼로그를 생성하고 editText를 생성하고 초기화하는 부분이 위 코드상에서는 나와있지 않기 때문에 말로만 설명드렸습니다.)

 

Gradler (109,780 포인트) 님이 2013년 8월 13일 답변
지여니님이 2013년 8월 13일 채택됨
감사합니다ㅠㅠ 해결했습니다!
0 추천
name.setText(info);

밑에

savePreference();

를 넣어 보세요.
아나콘다v (4,670 포인트) 님이 2013년 8월 13일 답변
밑에 써봤는데도 안되네요ㅠㅠ..
...