SharedPreference 사용법.
* 간략한 데이터를 저장하기 위해서는 SharedPreference 라는 클래스를 사용하면 됩니다.
File 에 직접 쓰거나, DB에 저장하는 것 보다 훨씬 간단하고 빠릅니다.
그렇기에, 간단한 데이터 저장등은 SharedPreference 를 사용하세요.
그럼 사용방법을 확인 해보겠습니다.
1. 데이터 저장하기.
필요한 데이터를 저장합니다. 형식은 하기와 같습니다.
1
2
3
4
5
6
7
8
|
// SharedPreferences 저장하기!
// data/data/패키지명/shared_prefs/"setting".xml.
SharedPreferences sharedPreferences = context.getSharedPreferences("setting", context.MODE_PRIVATE);
// SharedPreferences 를 제어하는 editor 를 만든다. 해당 editor 로 저장기능 사용함.
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("correctAvg" , correctAvgPercent);
editor.putInt("tryNum" , tryNum);
editor.commit();
|
cs |
SharedPreferences sharedPreferences = context.getSharedPreferences("setting", context.MODE_PRIVATE);
getSharedPreference() 함수를 Activity 가 아닌 클래스 나 프래그먼트에서 사용할때는
해당 Activity의 context 를 인자로 받아서, context.getSharedPreferences 로 호출해야 됩니다.
저는 위 저장 코드를 함수로 만들어서 타 클래스에서 하기 처럼 사용했습니다.
public void saveResult(Context context){
//SharedPreferences 저장하기!
// setting 이라는 파일명으로 저장한다.
// data/data/패키지명/shared_prefs/"setting".xml.
SharedPreferences sharedPreferences = context.getSharedPreferences("setting", context.MODE_PRIVATE);
// SharedPreferences 를 제어하는 editor 를 만든다. 해당 editor 로 저장기능 사용함.
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("correctAvg" , correctAvgPercent);
editor.putInt("tryNum" , tryNum);
editor.commit();
}
프래그먼트에서 호출은 하기 처럼, Activity 를 얻어와서 불러줍니다. 간단하죠?
GameMainActivity activity = (GameMainActivity)getActivity();
loadResult(activity);
* 중요한 점!
sharedPreferences 변수는 Activity 멤버함수인 getSharedPreferences 에서 받아옵니다.
getSharedPreferences() 의 첫번째 매개변수 값은 저장될 파일 이름입니다.
자신이 원하는 이름을 적어주세요.
이 파일은
data/data/패키지명/shared_prefs/"setting".xml. 에 xml 파일형식으로 저장 됩니다.
그다음은 editor 를 이용해서 데이터를 저장하는 코드입니다.
editor.putInt() 첫번째 인자 값이 바로 key 가 되고, 두번째 인자값이 바로 데이터 입니다.
불러올때 해당 key 값을 이용해서 데이터를 가져오게됩니다. key 값 역시 개발자가 이름을 지어줍니다.
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putInt("tryNum" , tryNum);
editor.commit(); // 저장 합니다.
2. 데이터 읽어오기.
저장한 데이터를 읽어옵니다. 이 역시 함수로 만들어두면 편리하겠죠?
1
2
3
4
5
6
7
8
|
public void loadResult(Context context){
//SharedPreferences 불러오기!
SharedPreferences sharedPreferences= context.getSharedPreferences("setting", context.MODE_PRIVATE);
correctAvgPercent = sharedPreferences.getInt("correctAvg",0);
tryNum = sharedPreferences.getInt("tryNum",0);
}
|
cs |
불러올때는, 위와 같이 getSharedPreferences 첫번째 인자값에 자신이 만든 파일 이름과 하기 코드를 이용하여
데이터를 가져옵니다. 다양한 데이터 타입을 가져올 수 있습니다.
자신이 저장한 "키"값에 해당하는 데이터를 불러오고, 데이터가 없을때는 기본으로 0을 가져온다는 의미입니다.
sharedPreferences.getInt("correctAvg",0);
간단한 데이터 저장을 위해서는
SharedPreference 의 저장하기, 읽어오기 기능만 잘 활용해서 멋진 앱을 만들 수 있답니다.
감사합니다.
'앱 만들기 > 안드로이드 study' 카테고리의 다른 글
안드로이드의 기술 # String 리소스 String 형으로 저장하기 (2) | 2020.09.22 |
---|---|
안드로이드의 기술 # 다른 Activity 변수,함수 호출하기. (4) | 2020.09.18 |
안드로이드의 기술 # 버튼 이벤트 처리. (4) | 2020.09.11 |
안드로이드의 기술 #Fragment 백키 처리하기. (6) | 2020.09.08 |
자바의 기술 # instanceof 사용방법. (2) | 2020.09.06 |
댓글