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

sharedPreference 사용에 대해서..

+1 추천

안녕하세요. sharedPreference에 대해 공부하다가 궁금한게 있어서 질문글 올려봅니다.

변수값 저장하는 용도로 String값들을 sharedPreference로 저장하고있습니다.

맨 처음 앱이 시작할 때 실행되는 mainActivity가 있고, intent로 화면전환해서 이동하는 서브페이지 sub1,sub2가 있습니다.

sub1의 onCreate부분에서 sharedPreference를 선언하고,

onResume 등에서 EditText1에 입력된 값을 저장하는 식으로 사용하고 있는데요,

sub1을 실행하지 않고 mainActivity에서 바로 EditText1에 입력된 값을 사용하려고 할 때는 기본멘트로 String basic="editText1에 입력된 값이 없습니다' 이런식 값을 넣어서 구현하려고 합니다.

설명하다보니 글이 길어졌는데.. 제 글의 요점은, sharedPreferece도 변수?처럼 전역에서 공유가 가능한건가요?

sub1을 거치지 않고 바로 메인에서 메세지를 띄우거나 받으려고 하면 sharedPreference가 null값이 나옵니다

 

조언 및 충고 댓글 감사히 받겠습니다. 좋은 저녁 보내세요^^

anci (19,950 포인트) 님이 2014년 6월 28일 질문

2개의 답변

+1 추천
 
채택된 답변
sharedPreference를 한번이라도 쓰거나 하지않으면 억세스시에 당연 null이 나옵니다.

어플을 시작하는 인트로같은곳에서 sharedPreference를 억세스해서 null이 나오면 한번도 사용하지않은것이니

그때 초기값을 설정해주심 되실겁니다.

그럼 다음부터는 null이 나오지않지요.
nicehee (73,100 포인트) 님이 2014년 6월 28일 답변
anci님이 2014년 6월 28일 채택됨
답변 감사합니다. 일단 String 값을 저장하는 부분은 sub1 클래스이니, intent로 sub1을 1회 이상 실행하지 않으면 당연히 main에서는 null값이 들어올 수 밖에 없다 이 말씀이시죠? 어플이 처음 시작할 때 메인페이지(mainActivity)의 onCreate부터 시작이 되고 여기서  sharedPreference의 값이 null인지 아닌지 if문으로도 판별해야 하는데요, 보통 저장할 때 key/value 이런식으로 저장을 하는데 key값이 null인지 조건문을 달아야 하는것인가요?
+1 추천
SharedPreference는 Activity뿐만 아니라 다른 앱에서도 접근이 가능합니다.
안_드루이드 (14,510 포인트) 님이 2014년 6월 28일 답변
답변감사합니다^^현재 sub1쪽에서만 SharedPreferences pref = getSharedPreferences("myPref",MODE_PRIVATE);  이렇게 선언하고 사용하고있는데요, 어떤식으로 다른 class에서도 사용가능이 한가요..?
...