android preference 사용하기
preference는 android 엡에서 자체적으로 정보를 저장하는 공간으로 엡을 종료하여도 값이 유지되어 많이 활용된다.
preference 사용
1.preferenceActivity를 상속받지 않고 preference 사용
1) preference 가져오기
SharedPreferene 클래스로부터 객체 생성
SharedPrefereces 인스턴스 얻어오기
getPreferences(int mode) : 하나의 Activity에서 사용할 sharedpreference 생성. 생성된 sharedpreference 파일은 해당 activity 이름으로 생성됨
getSharedPreferences("String name", int mode) : 특정 이름을 가지는 sharedepreference 생성

PreferenceManager.getDefaultSharedPreferences(Context context) : 저장된 context가 기본으로 사용하는 preference로부터 sharedpreferences에 저장된데이터들을 가져와서 사용하려할때 사용함 (대충 context에 저장된 값들을 불러온다는 뜻)
mode 인수는 파일의 공유 모드로 0이면 읽기 쓰기 허용, MODE_WORLD_READABLE은 읽기, MODE_WORLD_WRITEABLE은 쓰기만 가능
2) 프리페런스 읽어오기
프리페런스는 키와 값의 쌍으로 데이터를 저장. 키는 정보의 이름. 값은 정보의 DEFAULT값이 저장됨
int getInt("Strng key", "int defValue") : 정수형 읽기
String getString("String key", "String defValue") : 문자열 읽기
boolean getBoolean("String ke", "boolean defValue") : 논리형 읽기
사용하는 방법은 모두 같음. key인수로 데이터 이름을 저장, defValue인수로 값이 없을때 적용할 디폴를 저장(디폴트가 아마 값이 없는 null일때 값(초기값?)을 뜻하는듯)
키가 존제하면 해당 프리페런스의 기록되어 이쓴 값이 리턴, 키가 없으면 디폴트 값이 리턴, 최초실행은 디폴트 리턴
public void pre_call(){
pref_sw = getSharedPreferences("num", Activity.MODE_PRIVATE);
save_num_1 = pref_sw.getInt("jumsu1", 0);
save_num_2 = pref_sw.getInt("jumsu2", 0);
save_num_3 = pref_sw.getInt("jumsu3", 0);
}

3) 프리페런스에 기록하기
데이터 객체 가져오기
프리페런스 자체에서는 값을 읽는 메서드만 제공되며 값을 기록하는 메서드는
이너 클레스인 sharedPreferences.Editer 객체를 먼저 얻어온 객체에 edit()메서드를 호출하여 Editer 객체를 먼저 얻어옴
SharedPreference.Editor 에디터 객체명 = 프리페런스 객체명.edit();
기록하기
SharedPReference.Editor.putInt("String key", int value)
SharedPReference.Editor.putBoolean("String key", boolean value)
SharedPReference.Editor.purString("String key", String value)
(객체 가져오기와 기록하기를 잘 합쳐서 아래 메소드가 나온듯)
public void pre_save(){ // preference 저장
SharedPreferences.Editor edit = pref_sw.edit();
edit.putInt("jumsu1", (int)save_num_1);
edit.putInt("jumsu2", (int)save_num_2);
edit.putInt("jumsu3", (int)save_num_3);
edit.commit(); // commit()를 사용해야 값이 저장됨
}
