안녕하세요 안드로이드전공하고 대학생입니다.
이번방학을 이용해서 앱하나 만들어서 상용화시킬려고 하는데, 배운지 얼마안되고 아직 기초적인 것 밖에 몰라서 힘드네요 ㅠㅠ
지금 막히는 곳이 버튼을 하나 누르면 다이얼로그창이 뜨는데 다중체크할 수 있도록 되어있습니다.
사용자가 체크한 값을 저장시켜 Preferences로 상태저장 시켜 앱을 껏다가 다시 켰을때 저장시킨 값이 나타나도록 하려고합니다.
그냥 체크박스 UI를 Preferences로 상태 저장시키는 것은 했는데 다이얼로그 체크박스는 어떻게해야할지 모르겠네요..
onCreate에서
cb = (CheckBox) findViewById(R.id.checkBox1);
d = (Button) findViewById(R.id.main_bt1);
SharedPreferences pref = getSharedPreferences("pref",Activity.MODE_PRIVATE);
// Shared Preference를 불러옵니다.
cb.setChecked(chk1);
//cb에 체크값을 불러옵니다?
onStop에서
cb = (CheckBox) findViewById(R.id.checkBox1);
d = (Button) findViewById(R.id.main_bt1);
SharedPreferences pref = getSharedPreferences("pref",Activity.MODE_PRIVATE);
// UI 상태를 저장합니다.
SharedPreferences.Editor editor = pref.edit(); // Editor를 불러옵니다
editor.putBoolean("check1", cb.isChecked());
// 저장할 값들을 입력합니다.
editor.commit();
// 저장합니다.
위에 있는 소스로 cb라는 체크박스 ui상태는 저장했습니다.
@Override
protected Dialog onCreateDialog(int id) {
//onCreate 에서 showDialog 메소드에서 넘긴 id 값에 따라서 다이얼로그를 띄웁니다.
switch (id) {
case DIALOG_MULTIPLE_CHOICE:
return new AlertDialog.Builder(AlramActivity.this)
.setMultiChoiceItems(R.array.repetition,
new boolean[]{false, false, false, false, false, false, false},
new DialogInterface.OnMultiChoiceClickListener() {
public void onClick(DialogInterface dialog, int whichButton,
boolean isChecked) {
//여기서 리스트의 체크박스를 클릭할때마다 처리를 해줍니다.
//전역변수를 하나 두어서, 현재 클릭한 항목의 인덱스인 whichButton
//변수값과 체크여부 변수인 isChecked를 이용하여 저장해 두었다가,
//밑에 ok 버튼 클릭시, 혹은 cancel 버튼 클릭시에 이용하면 됩니다.
}
})
.setPositiveButton("선택", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//ok 버튼을 눌렀을때 처리를 합니다.
}
})
.setNegativeButton("취소", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//cancel 버튼을 눌렀을때 처리를 합니다.
}
})
.create();
}
return null;
}
위의 소스는 버튼을 눌렀을때 다이얼로그 체크창이 나타나는 소스입니다. 다이얼로그에는 체크박스로 선택할 수 있게 되어있고 다중선택 가능하게 되어있습니다. Preferences 를 이용하여 상태저장시키려면 어떻게 해야할지 좀 도와주세요 ~
간단하게 설명 드리면
아래와 같이 상태를 저장했으면
SharedPreferences pref = getSharedPreferences("pref",Activity.MODE_PRIVATE); // UI 상태를 저장합니다.
SharedPreferences.Editor editor = pref.edit(); // Editor를 불러옵니다
editor.putBoolean("check1", cb.isChecked()); // 저장할 값들을 입력합니다.
editor.commit(); // 저장합니다.
사용방법은 저장된 데이터를 불러오고 싶은곳에서
SharedPreferences pref = getSharedPreferences("pref",Activity.MODE_PRIVATE);
boolean check = pref.getBoolean("check1",false); // <---아마도 이렇게 불러오면 됩니다. 여기서 false는 default 값일껍니다.




상태를 문자열 형태로 조합하여, 저장하는 방법이 있습니다.
나중에 가져와서 split이나 subString으로 값을 복원할수가 있습니다.