2014-12-17 2 views
0

일부 SharedPreference 값을 설정할 수 있도록 조각이 있습니다.다른 활동의 sharedpreferences에 액세스 할 수 없습니까?

조각에서 모든 것이 잘 작동합니다. 원하는 값을 얻을 수 있습니다. 저장하고 편집하고 삭제하면 문제가 없습니다. 그때 나는 값 "savedValue1"을 얻기 위해 원하는 위치에서 활동을 가지고 -하지만 내가 조각에 그것을 시도

public static final String MyPref = "MyPreference"; 

static SharedPreferences sharedpreferences; 

//onCreateView... 

sharedpreferences = this.getActivity().getSharedPreferences(MyPref, 
       Context.MODE_PRIVATE); 

editor.putString("savedValue1", someString); 
editor.commit(); 

작동하지 않습니다 활동에

public static String getValue(){ 

     return sharedpreferences.getString("savedValue1",""); 
    } 

:

String newValue = Fragment.getValue(); 

하지만 작동하지 않습니다 - 어떤 힌트일까요? SharedPreferences

//To save string 
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor e = settings.edit(); 

e.putString("savedValue1", someString); 

e.commit(); 

//Retrieve team score 
String saved_value = settings.getString("savedValue1", ""); 
+0

'Fragment.getValue()'메소드가 없어야합니다. 'SharedPreferences'는 이것을 피하기 위해서입니다 ... 동일한'getSharedPreferences (MyPref, Context.MODE_PRIVATE)'코드를 사용하면 같은 환경 설정 내에서 같은 값을 가져 오거나 설정해야합니다. – shkschneider

+0

흠 나는 그것을 시험해보고 싶어한다. 기다림 – user3650191

+0

그것은 그것이 사용되기로되어있는 방법이다. 공식 문서에서 :'특정 환경 설정에 대해, 모든 클라이언트가 공유하는이 클래스의 단일 인스턴스가 있습니다 .' – shkschneider

답변

0

사용이 코드는 당신은 Fragment.getValue() 방법이없는 것이다.

SharedPreferences 여기 있습니다. 동일한 getSharedPreferences("whatever", Context.MODE_PRIVATE) 코드를 사용하면 동일한 환경 설정에서 동일한 값을 가져 오거나 설정해야합니다.

이것이 사용 된 방법입니다. official documentation에서 : 환경 설정의 특정 세트의

, 모든 클라이언트가 공유하는이 클래스의 단일 인스턴스가있다.

관련 문제