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

selected를 이용한 버튼 색깔이 안 바뀌지 않습니다.!

0 추천

이벤트리스너를 통해서 클릭했을 시 클릭한 버튼의 색깔을 바꿀려고 하는데
 

버튼의 색깔은

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:color="#E85021"/>
    <item android:state_selected="true" android:color="#E85021"/>
    <item android:color="#D5866E"/>
</selector>

누를때, 선택됬을때, 기본 이렇게 3가지로 구분해 놓았고

koreaButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        koreaButton.setSelected(true);
        usButton.setSelected(false);
        japanButton.setSelected(false);
    }
});

usButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        koreaButton.setSelected(false);
        usButton.setSelected(true);
        japanButton.setSelected(false);
    }
});

japanButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        koreaButton.setSelected(false);
        usButton.setSelected(false);
        japanButton.setSelected(true);
    }
});

자바에선 이렇게 3개의 버튼에 각각 select했을때 설정을 하여, 각 버튼을 누를 때 누른 버튼이 다른 버튼을 누르기 전까지 바뀐 색깔로 유지되는 코드를 만들었지만, 실행시켰을때 버튼을 눌렀더니 pressed는 적용되어 잠시 색깔이 바뀌는데 selected는 실행이 안되는지 색깔이 바뀌지 않고 기본 색깔 그대로네요...

슐호 (140 포인트) 님이 2023년 6월 12일 질문
슐호님이 2023년 6월 12일 수정

1개의 답변

0 추천
눌린 상태를 유지하고 싶으시면 그냥 버트 보다는 Compound button(CheckBox, RadioButton 등) 이checked등의 상태를 가지고 있어서 더 편리합니다.

https://tdscientist.github.io/button4Android/

위와 같은 곳에 가셔서 selector 를 만드신 다음 이걸 RadioButton에 연결해 보세요.

<RadioButton
...
android:background="@drawable/selector_name"
...
/ >

styling은 Material design을 참고하세요. https://m2.material.io/develop/android/components/radiobuttons
spark (227,530 포인트) 님이 2023년 6월 12일 답변
...