안드로이드 Shared Preferences
조회수 1916회
안드로이드의 SharedPreferences 클래스를 이용하여 두 엑티비티 간에 공유되는 속성을 만들고자 합니다. 이 속성들을 어떻게 하면 한 액티비티에서 다른 액티비티로 넘길 수 있을까요? 정적 변수도 가능할 수 있지만, 저에게 적합하지 않은 방법인 듯 합니다.
1 답변
-
인텐트를 이용하여 다른 액티비티에 넘겨주거나, 새로운 액티비티에서 필요한 속성을 읽어들여야 합니다.
공유 속성 호출을 다룰 수 있는 헬퍼 클래스를 생성하시고, 속성을 저장하거나 읽어들일 액티비티에 해당 클래스의 인스턴스를 생성하세요.
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);
댓글 입력