마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

리스트뷰 항목 클릭하면 나오는 액티비티의 체크박스 값 저장방법?

0 추천

listView

사과

바나나

딸기

라는 리스트뷰가 있는데 "사과"라는 항목을 클릭하면

intent로 id 값을 넘겨서

listClick.Activity에서 사과라는 과일에대한 사진이 뜨고

먹어보셨나요? 해서 체크박스를 하나 넣었습니다.

 

그런데 SharedPreferences로 체크박스 값을 저장하니

사과에만 체크했는데도 불구하고

바나나, 딸기에도 전부다 체크값이 저장이되네요 ㅠㅠ

 

사과,바나나,딸기 따로따로 체크박스 값을 저장하는 방법은없나요?

 

 

익명사용자 님이 2015년 4월 30일 질문

1개의 답변

+2 추천
별다른 세부 내용이 없어 결론부터 이야기 드리면,

코딩을 잘못하신 듯 하네요
aucd29 (218,390 포인트) 님이 2015년 4월 30일 답변
/**체크박스--화면 사라질때 저장**/
    public void onStop() {
        super.onStop();
        SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE); // UI 상태를 저장합니다.
        SharedPreferences.Editor editor = pref.edit();
        CheckBox check1 = (CheckBox) findViewById(R.id.checkBox);
        editor.putBoolean("check1", check1.isChecked()); //값 입력
        editor.commit(); //저장
    }

                            //체크박스 기억을 위한 프리퍼런스
                            SharedPreferences pref = getSharedPreferences("pref", Activity.MODE_PRIVATE);
                            CheckBox checkBox = (CheckBox)findViewById(R.id.checkBox);
                            Boolean chk1 = pref.getBoolean("check1", false);
                            checkBox.setChecked(chk1);

뭐 이런식으로 되어있습니다 ㅠ
일단 checkbox 의 에 대한 event 를 통해서 checked 인지 아닌지를 확인하는 코드를 먼저 넣으시고 onStop 에서는 하지 않아도 됩니다.

setOnCheckedChangeListener 를 확인하세요
http://egloos.zum.com/nom3203/v/2650688
근데 제어계측 나왔나요?
...