데이터 프리퍼런스(Data Preference)
이번 포스팅에서는 프리퍼런스(Preference)에 대해 다루겠습니다.
일단 프리퍼런스란 무엇인가?
안드로이드 프로젝트를 진행하면서, ID나, String 문자열 등을 저장해야할 경우가 생깁니다. Ex) 로그인 페이지
보통의 경우 DB를 사용하여 Data를 저장할 수 있지만, DB를 쓰기에 너무 간단한 내용이거나, 애매한 상황일 경우가 생길수 있습니다.
그럴 경우, 안드로이드에서 제공하는 SharedPreferences를 사용합니다.
SharedPreferences를 사용하는 순서는 아래와 같습니다.
정의하기(SharedPreferences) → 불러오기(getSharedPreferences) → 기록하기(editor)
[1] Preference 정의 [2] Preference 불러오기 [3] Preference 기록하기
|
먼저 Preference를 정의 및 그다음 기록할 파일을 불러오는 방법입니다.

이때 앞에 있는 Pref은 기록할 xml의 이름입니다. 이름이 Pref.xml인 파일이 생성됩니다.
뒤에 있는 0은 무엇을 뜻하는지 설명을 하자면, 0 : 읽기, 쓰기 가능 MODE_WORLD_READABLE : 읽기 공유 MODE_WORLD_WRITEABLE : 쓰기 공유 |

마지막으로 설정값을 가져오는 방법입니다 자료의 타입마다 다른 명령으로 가져와야 합니다 .getBoolean(key, defValue); .getFloat(key, defValue); .getInt(key, defValue); .getLong(key, defValue); .getString(key, defValue);
(만약 Int로 저장해두고 Boolean으로 가져오면 강제종료 에러가 뜨게 됩니다)
저기서 key라는 것은 저장될 값의 이름이고, defValues는 만약 저장된 값이 없을 경우 반환하게 되는 값입니다
그런대 설정값을 가져오는것만으로는 실제 사용이 불가능 합니다 값을 저장도 해야죠? 그래서 저장, 즉 기록을 위해 또 하나 editor라는 것을 정의해야 합니다
|

SharedPreferences.Editor ed = sp.edit();; 이번에는 Editor라는것이 붙었습니다
이렇게 editor로 사용할때는 이미 정의한 SharedPreferences에 ".edit()"를 붙혀 이 Preference의 에디터 역할을 할것이다 라고 해주시면 됩니다
사용방법은 아래와 같습니다 editor.putBoolean(arg0, arg1); editor.putFloat(key, value); editor.putInt(key, value); editor.putLong(key, value); editor.putString(key, value); 로딩과 마찬가지로 Boolean, Float, Int, Long, String이라는 형을 기록할 수 있습니다.
|

마지막으로 값의 변동을 저장하기 위해서는 꼭!!! 아래와 같은 명령어가 필요합니다. editor.commit(); 또는 editor.apply(); 무조건 이 명령어가 처리되어야 실제로 xml에 값이 기록되게 됩니다
|
https://youtu.be/spNrr9EwWj0
위 링크는 오늘 만들 어플리케이션의 구동 영상입니다.
미리 결과를 확인해보고 코딩을 해봅시다.