2011-09-19 7 views
0

내 응용 프로그램에 SharedPreferences을 사용하고 있습니다. 내 응용 프로그램에 로그인 한 마지막 사용자 ID를 저장하고 있으며, 비 활동 클래스에서이 작업을 수행하려고합니다. 그 결과, NullPointerException이 코드의 두 번째 줄 :안드로이드가 공유 환경 설정 문제를받습니다.

  • Acticity.this.mContext;
  • this.mContext.getApplicationContext();
  • :

    Context mContext; 
    SharedPreferences lastUser = PreferenceManager.getDefaultSharedPreferences(mContext); 
    SharedPreferences.Editor editor = lastUser.edit(); 
    

    나는 mContext의 가능한 모든 변화와 시도했습니다

  • this.mContext;

그러나 문제는 해결되지 않았습니다. 아무도 나에게이 문제를 없애는 방법과 정적 방법으로 Context를 사용하는 방법을 알려줄 수 있습니까? NullPointerException?

답변

2

당신은 그 메소드를 호출하는 활동의 컨텍스트를 사용한다 참조하면 도망, 비 활동 클래스의 컨텍스트를 초기화하지 않았 생각합니다.

2

비 활동 클래스의 생성자를 통해 활동 컨텍스트를 전달하고이 컨텍스트를 사용하여 SharedPreferences 개체를 만들 수 있습니다.

2

SharedPreferences lastUser = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
    SharedPreferences.Editor editor = lastUser.edit(); 
시도
관련 문제