2011-01-06 2 views
0

나는 자신의 SharedPreferences에 자격 증명을 저장하는 로그인 활동을 가지고 있습니다; 그때,다른 활동의 환경 설정에 접근하기

public String getUsername() { 
    return getPreferences(MODE_PRIVATE).getString("#username", null); 
} 

처럼 뭔가를 읽기 위해 두 게터를 추가하지만이

String mUser = (new Login()).getUsername(); 

과 같이 호출 할 때 활동 간단한 생성자 호출 후 해당 환경 설정을 읽을 수없는 것 같습니다 NPE가 발생합니다 마치 미완성 상태에있는 것처럼 많은 관련 주제를 읽었지만 해결책을 찾지 못했습니다. 기본적으로 나는이 자격 증명을 신청서에 포함 된 활동들간에 공유해야합니다.

답변

4

활동 작성 방법이 아닙니다. new Login()으로 전화를 걸면 공유 환경 설정에 액세스하기위한 올바른 컨텍스트가 없습니다. 또한 Activity 또는 Service까지 확장되는 클래스에서 new으로 전화하지 마십시오. 그것은 안드로이드 클래스가 작동하는 방식이 아닙니다.

활동에 대한 참조가 필요합니다.

하지만 디자인이 올바르지 않은 것으로 들립니다. 다른 활동의 선호도에 도달 할 필요는 없습니다. 그렇다면 defaultSharedPrefernces에 대신 넣으십시오.

+0

의견을 보내 주셔서 감사합니다.하지만 defaultSharedPreferences가 무엇인지 모릅니다. 게시물을 편집하고 자신에 대해 더 잘 설명해 주실 수 있습니까? 나는 안드로이드 개발의 초보자이며, 공식 tut 상태에 대해서만 알고있다. – Raffaele

+0

http://marakana.com/forums/android/examples/63.html – Falmarri

+0

감사합니다. Falmarri – Raffaele