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

버튼 활성화/비활성화 질문입니다

0 추천
특정 변수의 값(예를들어서 상태가 수락됨, 거절됨, 대기중 이 있다 하면)

 

그 값들을 버튼 형태로 노출시키고 싶은데

 

생각하기로는 버튼을 3개 만들어 놓고 활성화/비활성화 하면 된다고 생각하고 있었는데

 

방법을 몰라서 질문 올립니다

 

혹여나 다른방법이 있다면 다른방법으로 조언주셔도 감사하겠습니다
jbk (120 포인트) 님이 2021년 10월 16일 질문

1개의 답변

0 추천

Material component를 사용하면 버튼을 toggle button 그룹으로 사용할 수 있습니다. 아래 링크를 참조해 보세요.

https://material.io/components/buttons/android#toggle-button

또는  Radio button의 button을 제거한 다음, backgroud에 selector 를 설정할 수도 있습니다.

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/selector_accepted"
        android:button="@android:color/transparent"
        android:gravity="center"
        android:text="수락됨"
        tools:checked="true" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/selector_denied"
        android:button="@android:color/transparent"
        android:gravity="center"
        android:text="거절됨
        tools:checked="false" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/selector_pending"
        android:button="@android:color/transparent"
        android:gravity="center"
        android:text="대기중
        tools:checked="false" />

select_accepted.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/accepted_checked_pressed" android:state_checked="true" android:state_pressed="true" />

    <item android:drawable="@drawable/accepted_checked" android:state_checked="true" />

    <item android:drawable="@drawable/accepted" />
</selector>

 

두번째 방법을 사용하고 selector를 만드시려면 android selector generator로 구글링 해보시면 온라인으로 selector를 생성해주는 사이트들이 있는데, 그걸 이용하면 편리합니다.

spark (226,720 포인트) 님이 2021년 10월 16일 답변
spark님이 2021년 10월 16일 수정
...