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

조회수 4763회

제가 시간 값을 저장하고 그걸 받아서 수정하는 그런걸 하려고 하는데요 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버전에 추가되었는데 리턴값이 없습니다. 그리고 값을 즉시 저장하는데 비동기적으로 저장합니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)