안드로이드 Shared Preferences


안드로이드의 SharedPreferences 클래스를 이용하여 두 엑티비티 간에 공유되는 속성을 만들고자 합니다. 이 속성들을 어떻게 하면 한 액티비티에서 다른 액티비티로 넘길 수 있을까요? 정적 변수도 가능할 수 있지만, 저에게 적합하지 않은 방법인 듯 합니다.

  • 2016년 06월 14일에 작성됨

조회수 114


1 답변


좋아요
0
싫어요
채택취소하기

인텐트를 이용하여 다른 액티비티에 넘겨주거나, 새로운 액티비티에서 필요한 속성을 읽어들여야 합니다.

공유 속성 호출을 다룰 수 있는 헬퍼 클래스를 생성하시고, 속성을 저장하거나 읽어들일 액티비티에 해당 클래스의 인스턴스를 생성하세요.

public class AppPreferences {
     public static final String KEY_PREFS_SMS_BODY = "sms_body";
     private static final String APP_SHARED_PREFS = AppPreferences.class.getSimpleName(); //  Name of the file -.xml
     private SharedPreferences _sharedPrefs;
     private Editor _prefsEditor;

     public AppPreferences(Context context) {
         this._sharedPrefs = context.getSharedPreferences(APP_SHARED_PREFS, Activity.MODE_PRIVATE);
         this._prefsEditor = _sharedPrefs.edit();
     }

     public String getSmsBody() {
         return _sharedPrefs.getString(KEY_PREFS_SMS_BODY, "");
     }

     public void saveSmsBody(String text) {
         _prefsEditor.putString(KEY_PREFS_SMS_BODY, text);
         _prefsEditor.commit();
     }
}

그 다음 액티비티에는 아래와 같이 작성해주시고 ...

public class MyActivity extends Activity {

    private AppPreferences _appPrefs;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        _appPrefs = new AppPreferences(getApplicationContext());
        // ...
    }
}

아래의 방법으로 값을 읽거나 저장하시면 됩니다.

String someString = _appPrefs.getSmsBody();
_appPrefs.saveSmsBody(someString);
  • 2016년 06월 15일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close