[Android] RadioGroup, RadioButton 관계

2021. 9. 28. 13:08모바일/Android_Java

[Android] RadioGroup, RadioButton 관계

rg.setOnCheckedChangeListener(this);

위 코드로 라디오그룹에 리스너를 달아주었을때, 라디오 버튼을 직접 클릭하여 리스너의 결과를 확인해보면 true상태의 RadioId 만 리스너가 실행된다.

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        switch (checkedId) {
            case R.id.y_btn:
                   rg.check(R.id.y_btn);
                break;
            case R.id.n_btn:
                rg.check(R.id.n_btn);
                break;
        }
    }

하지만 여기서 rg.check 코드를 통해 라디오를 체크하게되면,

처음에 false가된 상태의 라디오 id도 리스너가 실행되고, rg.check를 통해 check한 id의 리스너도 실행된다.

결론적으로 리스너가 2~3회 실행 될 수가 있다..

따라서,

if(((RadioButton) group.findViewById(checkedId)).isChecked()){
}

위 조건문을 통해 true 상태일 때만 변경시켜준다!