0

내 응용 프로그램이 아래 코드에서 널 포인터 예외로 인해 충돌합니다. res/xml/defaults.xml 아래에 xml 환경 설정 파일이 있습니다. 왜 충돌이 발생하는지 알고 싶습니까?Android ==> 환경 설정?

public class Preference extends Activity { 
    public Preference() 
    { 
    } 

    public String getPreference(String key) 
    { 
       //it still crashes here 
     SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this.getApplicationContext()); 
     String result = settings.getString(key, null); 
     return result; 
    } 
} 

답변

2

기본 설정 파일은 하지에 storead있는 프로젝트의 /res/xml/defaults.xml

그들은 당신과 같은

/data/data/com.your.pkg/default.prefs 

파일 이름을 지정하지 않은 시도와 같은 응용 프로그램 폴더 뭔가 장치에 저장되어있는 이 OP와 같은 환경 설정 파일에 몇 가지 문제가 있습니다. here

,544,

그럼 당신은 아마

preferences.getString('weightPref', null); 
+0

감사합니다. 나는 제안한대로했는데 여전히 nullPointerException이 발생합니다. 위 코드에서 전체 코드를 게시했는데 문제가 있습니까? 감사합니다. – aryaxt

0

가 여기에 저장하고 환경 설정을 검색하는 방법을 보여주는 샘플 코드의 조회해야합니다. 여기에 SharedPreferences에 사용자 이름과 암호를 저장합니다.

SharedPreferences uPreferences = getSharedPreferences("CurrentUser", MODE_PRIVATE); 
SharedPreferences.Editor editor; = uPreferences.edit(); //Instantiating editor object 


protected void storeSharedPrefs(String username, String password) { 
     /* 
     * Storing in Shared Preferences 
     */ 
     editor.putString("username", username); 
     editor.putString("password", password);  
     editor.commit(); //Commiting changes 
    } 

SharedPreferences에서 다른 활동의 사용자 이름과 암호를 검색하고 있습니다.

private SharedPreferences mSP; 
    mSP = getSharedPreferences("CurrentUser", MODE_PRIVATE); 
      String username = mSP.getString("username", null); 
      String password = mSP.getString("password", null); 

는 희망이 도움이 ..

0

공유 환경 설정에서 값 설정 :

Editor prefs = getSharedPreferences("Application_name", MODE_PRIVATE).edit(); 
prefs.putString("key", accountKey); 
prefs.commit(); 

다른 활동에서 값을 얻기를 :

String accountKey = 
    this.getSharedPreferences("Application_name", MODE_PRIVATE). 
    getString("key", null); 

그것은하면 좋을 것이다 하드 코드 된 대신 getString(R.string._key)과 같은 미리 정의 된 일부 처리기를 사용하여 변수에 액세스합니다. 문자열 "key".

0

기본 설정은 PreferenceActivity입니다. 그럼 당신은 다음처럼 PreferenceActivity를에서 자원 XML 환경 설정에 대한 파일 참조 것을을 만들어야합니다

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      addPreferencesFromResource(R.xml.preferences); 
      etc. 
    } 

환경 설정 XML은 최상위 요소로 PreferenceScreen이 있어야합니다, 당신은 모든 다른 활용할 수 있습니다 환경 설정 Android는 환경 설정을 위해 사용할 수 있습니다. 이것은 가장 흔하고 우아한 방법 일 것입니다.

관련 문제