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

sharedpreferences(Activity -> Fragment) 값이 안불러지네요

0 추천

일단 간략하게 코드를 보여드리면--------- -------------Login_Main Activity쪽

public static final String MyPREFERENCES="MyPrefs" ;
public static final String name="nameKey"; 
public static final String pass="passwordKey";
public static final String addr1="addr1Key";
public static final String addr2="addr2Key";
SharedPreferences sharedpreferences;
sharedpreferences=getSharedPreferences(MyPREFERENCES,Context.MODE_PRIVATE);
 
Editor editor = sharedpreferences.edit();
        String a = member.getString("email");      //db쪽에서 불러온값
        String b = member.getString("passwd");  //db쪽에서 불러온값
        String c = member.getString("addr1");      //db쪽에서 불러온값
        String d = member.getString("addr2");      //db쪽에서 불러온값
        editor.putString(name,a); 키값에 db에서 불러온값을 저장
         editor.putString(pass,b);   키값에 db에서 불러온값을 저장
        editor.putString(addr1,c); 키값에 db에서 불러온값을 저장
        editor.putString(addr2,d); 키값에 db에서 불러온값을 저장
 
-------------------이런식으로 저장을 시켰습니다. 그리고 Fragment 2개가있는데요  첫번째 fragment코드는-------
버튼클릭시 저장시켰던 값을 모두 삭제시켰습니다.
SharedPreferences sharedpreferences = this.getActivity()
.getSharedPreferences(Login_Main.MyPREFERENCES, Context.MODE_PRIVATE);
 
Editor editor = sharedpreferences.edit();
editor.clear();
editor.commit();
 
액티비티에서 저장했던 값을 삭제시켜서 로그아웃하여 다시 Login_Main Activity 로 돌아가게끔 구현했는데요 여기까지는 잘됩니다. 문제는 2번째 fragment에서 저장되었던 addr1,addr2의 값을 불러올려고했는데
 
SharedPreferences sharedpreferences = getActivity()
.getSharedPreferences(Login_Main.MyPREFERENCES, Context.MODE_PRIVATE);
 
String result=sharedpreferences.getString("addr1", "null");
String result1=sharedpreferences.getString("addr2", "null");
tv1.setText(result);
tv2.setText(result1);
 
여기서는 tv1과 tv2가 null로 찍히더라구요. Login_Main Activity에서 addr1,addr2 key에 db에서불러온 값을 저장시켜서 출력하려는데 addr1,addr2 키값에 저장되어있는 값이 없는듯합니다. 첫번째 fragment에서는 잘 되는가 싶더니 두번째fragment에서는 안먹히네요. 제가 많이 허접해서 잘 이해를 못하고있는듯합니다. 어떻게 바꿔야할까요?~?
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

자곡로거주민 (120 포인트) 님이 2015년 1월 16일 질문

1개의 답변

0 추천
putString() 후 commit() 해주세요~

그거말곤 올리신 소스와 설명중 이상한 부분이 없어보이네요...
비애천사 (12,080 포인트) 님이 2015년 1월 16일 답변
아 editor.commit(); 또한 한 상태입니다.
ㅠㅠ
아 액티비티에서 저장시킨
public static final String addr1="addr1Key";
public static final String addr2="addr2Key";
이걸 프래그먼트에서 쓸때
String result=sharedpreferences.getString("addr1", "null");
String result1=sharedpreferences.getString("addr2", "null");
이렇게 써서 안됬었네요
addr1을 addr1Key로 바꿨더니 되네요!
...