2013-10-21 5 views
2

oncreate없이 SharedPreferences 클래스에서 사용하는 방법?oncreate 외부에서 SharedPreferences를 사용하는 방법?

액세스 할 때 널 포인터가 나타납니다. 내가 다른 활동 Ftr에서 기능 ft()를 호출하고있어

public class Ftr extends Activity 

    { 
    SharedPreferences preferences; 

    Context ab=this; 

    public void ft() 
    { 
     preferences = PreferenceManager.getDefaultSharedPreferences(ab); 
     String result = preferences.getString("F",""); 
     } 
     } 

는 클래스가 아닌 활동이다.

이 상태에서 SharedPreferences은 어떻게 사용합니까?

+0

매개 변수로 Context를 사용하는 정적 메서드를 만들어 해당 메서드를 비 활동 클래스에서 호출해야합니다. 더 나은 방법은 일부 유틸리티 클래스 (해당 활동에없는)에 해당 메소드를 작성하는 것입니다. –

답변

4

일반적인 방법 또는 유틸리티를 사용할 수 있으므로 모든 방법에서 사용하십시오.

public static void SaveInPreference(Context mContext, String key, String objString) { 
    SharedPreferences.Editor editor = mContext.getSharedPreferences(mContext.getString(R.string.app_name), 
      Context.MODE_PRIVATE).edit(); 
    editor.putString(key, objString); 
    editor.commit(); 
} 

public static String getPrefString(Context mContext, final String key, final String defaultStr) { 
    SharedPreferences pref = mContext.getSharedPreferences(mContext.getString(R.string.app_name), 
      Context.MODE_PRIVATE); 
    return pref.getString(key, defaultStr); 
} 
관련 문제