안드로이드에서 SharedPreferences를 써서 값을 저장하고 수정하는거 어떻게 하나요?

제가 시간 값을 저장하고 그걸 받아서 수정하는 그런걸 하려고 하는데요 SharedPreferences로 그런거 하려면 어떻게 해야하나요?

1답변

  • 좋아요

    0

    싫어요
    채택취소하기

    일단 SharedPreferences 생성은 액티비티의 메소드에서 아래처럼하시면됩니다.

    SharedPreferences prefs = this.getSharedPreferences(
          "com.example.app", Context.MODE_PRIVATE);
    

    preferences를 읽는건.

    String dateTimeKey = "com.example.app.datetime";
    
    // 현재 시간값을 new Data().getTime()으로 받아온다.
    long l = prefs.getLong(dateTimeKey, new Date().getTime()); 
    

    이런식으로 하시면 됩니다.

    preferences를 수정하고 저장하는건

    Date dt = getSomeDate();
    prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();
    

    이런식으로 하세요.

    안드로이드 sdk의 샘플 프로젝트에 preferences를 저장하고 받는 예제가 있습니다. 그거의 경로는 <android-sdk-home>/samples/android-<platformversion>/ApiDemos directory 입니다.

    또 commit()과 apply()의 차이를 구분하는것도 중요한데. commit()은 값을 성공적으로 저장했을때 true를 리턴하고 아닐때 false를 리턴합니다. commit은 SharedPreferences에 동기적으로 값을 저장합니다. apply()는 2.3버전에 추가되었는데 리턴값이 없습니다. 그리고 값을 즉시 저장하는데 비동기적으로 저장합니다.

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.