2014-03-27 5 views
0

SharedPreferences를 사용하여 클래스 객체를 저장하려고합니다. Gson 라이브러리도 있습니다. 내 코드는 다음과 같습니다SharedPreference를 사용하여 Cant save 클래스

전 세계에 선언

그런 다음
SharedPreferences mPrefs = getPreferences(MODE_PRIVATE); 

내가 내 수업 저장 :

  Editor prefsEditor = mPrefs.edit(); 
      Gson gson = new Gson(); 
      String json = gson.toJson("Copy"); 
      prefsEditor.putString("Copy", json); 
      prefsEditor.commit();  

을 그리고 난 내 클래스를로드 :

   Gson gson = new Gson(); 
      String json = mPrefs.getString("Copy", ""); 
      Copy obj = gson.fromJson(json, Copy.class); 

때 나는 즉시 애플 리케이션을 실행 충돌. 또한 LogCat에는 java.NullPointException이 있습니다.

+0

잘못 사용하고 있습니다. 왜''복사 ''를 'toJson'에게 넘겨 줍니까? –

+0

내 답변에서와 같이 추측 할 필요없이 전체 스택 추적이 도움이됩니다. – laalto

답변

0
SharedPreferences mPrefs = getPreferences(MODE_PRIVATE); 

난 당신이 선언하고 m 접두사로 표시된 바와 같이 여기에 멤버 변수를 초기화하는 것 같은데요. 당신은 너무 일찍 그것을하고 있습니다. onCreate()까지 Context으로 활동을 사용할 수 없습니다. 거기에서 초기화를 이동하십시오.

+0

네, 이제는 클래스를 다시로드하려고 할 때로드 버튼을 클릭하면 크래시 및 nullpoint가 발생합니다. – user3465277

관련 문제