파일에 글을 작성하거나 로컬DB에 값을 저장하는 등의 작업은 생각보다 빈번하게 일어난다.
이번 포스팅에서는 SharedPreferences 인터페이스를 이용하여 xml 파일에 글을 작성하는 방법에 대해 정리하겠다.
https://developer.android.com/reference/android/content/SharedPreferences
SharedPreferences | Android Developers
developer.android.com
보기 편하게 작업 종류로 메소드를 나누어 작성하였다.
첫번째는 XML파일을 생성하여 내용을 작성하는 방법이다.
private void writePref(int content){
SharedPreferences preferences = context.getSharedPreferences("name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("key_string","value");
editor.putInt("key_int",content);
editor.putBoolean("key_bool",true);
editor.putFloat("key_float",1);
editor.putLong("key_long",1);
editor.putStringSet("key_string_set", new Set<String>() {...생략...});
editor.commit();
}
우선 context.getSharedPreferences 를 통해 객체를 생성한다.
첫번째 매개변수에는 작성할 xml 파일 이름을 삽입하고
두번째 매개변수에는 파일에 관한 권한을 명시하는 상수로 Context.MODE_PRIVATE를 삽입했다.
MODE_PRIVATE | 자신의 앱 내에서만 사용이 가능하며, 외부에서 접근이 불가합니다. |
내용을 작성하기 위해 SharedPreferences 객체로부터 Editor 객체를 생성했다.
작성할 수 있는 데이터 타입은 String, StringSet, Int, Boolean, Float, Long 타입이 있다.
put 메소드에 key값과 value값을 작성한 뒤, editor.commit()을 해주면 저장된다.
저장 경로 : data/data/패키지명/shared_prefs/SharedPreference
두번째는 PreferenceManager 객체를 이용한 SharedPreferences 객체 생성 방법이다.
private void writePrefDefault(int content){
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("key_string","value");
editor.putInt("key_int",content);
editor.putBoolean("key_bool",true);
editor.putFloat("key_float",1);
editor.putLong("key_long",1);
editor.putStringSet("key_string_set", new Set<String>() {...});
editor.commit();
}
PreferenceManager.getDefaultSharedPreferences(this)를 이용하면
파일명을 명시할 필요가 없고, 현재 앱의 패키지명을 파일명으로 하여 생성한다.
경로 : 패키지명과 동일
세번째는 객체를 읽어오는 방법이다.
private void readPref(){
SharedPreferences preferences = context.getSharedPreferences("name", Context.MODE_PRIVATE);
String valueString = preferences.getString("key_string","default");
}
동일한 파일명으로 SharedPreferences 객체를 생성한 뒤
getString 등의 메소드를 이용하여 읽어온다.
첫번째 매개변수에는 읽어올 key값을, 두번째 매개변수에는 default값으로 사용할 값을 삽입한다.
마지막으로 값을 삭제하는 방법이다.
private void deletePref(){
SharedPreferences preferences = context.getSharedPreferences("name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.remove("key_string");
editor.commit();
}
동일하게 객체를 생성하고, Editor 객체도 생성한다.
그 후 editor.remove 메소드 매개변수에 삭제할 key값을 작성하면 해당 데이터가 삭제된다.
저장을 위해 commit()까지 작성해주면 된다.
'JAVA > Android' 카테고리의 다른 글
[JAVA][Android] GridView와 GridLayout (0) | 2024.01.17 |
---|---|
[kotlin][Android] collect와 collectLatest의 차이 (0) | 2023.08.29 |
[JAVA][Android] 화면 구성 변경에 따른 객체 처리 (ConfigurationChanged) (0) | 2023.01.05 |
[JAVA][Android] AndroidManifest의 usesCleartextTraffic 속성 (http URL로의 접근 제한 해결)(Cleartext HTTP traffic to www.XXX.com not permitted) (0) | 2022.12.19 |
[JAVA][Android] KillProcess로 인한 앱 충돌 / 비정상 종료 (0) | 2022.09.14 |