Study/Android

Data Storage 中 Preferences

유쾌한순례자 2011. 8. 30. 13:57
화면저장방식. 게임같은곳에서 셋팅같은것등 ( 말그대로 화면을 저장한다고 생각하면 되겠다.)
 
activity 라이프사이클에서 판단해서 사용하면 되는데 대부분 onStop에서 저장을

onStart에서 불러오는것이 보편적인 방법이다.

        //현재화면상태정보를 pref  라는 key이름으로 가져옴
        SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); 
  
 
       //findViewById로 각 id 값을 가져옴
        EditText edit1 = (EditText)findViewById(R.id.EditText);
CheckBox check1 = (CheckBox)findViewById(R.id.CheckBox01);
CheckBox check2 = (CheckBox)findViewById(R.id.CheckBox02);
 
        //pref에 저장되어 있는  값을 가져오는데 "이름" ,"만약 값이 없을경우 Default 값" 형태로 사용한다. 
String text = pref.getString("editText", "");
Boolean chk1 = pref.getBoolean("check1", false);
Boolean chk2 = pref.getBoolean("check2", false);
 
        //값을 set 함 
edit1.setText(text);
check1.setChecked(chk1);
check2.setChecked(chk2); 






//activity life cycle   ... onStop()

        //현재화면저장정보를 pref 란 key 값으로 가져옴
SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
              
 
       //Editor 클래스를 이용해 저장할거임
        SharedPreferences.Editor editor = pref.edit(); 
 
EditText edit1 = (EditText)findViewById(R.id.EditText);
CheckBox check1 = (CheckBox)findViewById(R.id.CheckBox01);
CheckBox check2 = (CheckBox)findViewById(R.id.CheckBox02);
 
// 저장할 값들을 입력
editor.putString("editText", edit1.getText().toString());
editor.putBoolean("check1", check1.isChecked());
editor.putBoolean("check2", check2.isChecked());