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

버튼이 하나만 눌러지도록

0 추천
제가 지금만들고싶은게

성별 [남자] [여자]

 

해당버튼을 눌렀을때 색이변하게했고

하나의 질문칸에서 라디오버튼처럼 다중버튼을 체크하지못하고 한개의버튼만 체크가되게하고싶어요

 

남자,여자는 두개지만 이것보다 리스트가 더많아졌을때 간편하게 어떻게 처리하나요??ㅠㅠ

그리고 눌러진버튼만 색상이 변하게하려면

버튼 하나하나 일일이 권한을 부여해야되나요??
채키 (120 포인트) 님이 2017년 10월 2일 질문
라디오 그룹으로 설정하고 버튼모양만 체크박스 모양으로 바꾸면 됩니다~

1개의 답변

0 추천

 

만약 button이 세개있다면, 아래와 같이 핸들링하면 됩니다.
아래는 AppCompatButton으로 되어 있는데, Button이어도 상관없습니다.
 
Private mBtn1 = (AppCompatButton) rootView.findViewById(R.id.btn1);
Private mBtn2 = (AppCompatButton) rootView.findViewById(R.id.btn2);
Private mBtn3 = (AppCompatButton) rootView.findViewById(R.id.btn3);
private boolean mBtn1Pressed, mBtn2Pressed, mBtn3Pressed;

mBtn1.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
               if (!mBtn2Pressed && !mBtn3Pressed) {
                    mBtn1.setImageResource(R.drawable.modON); // 배경이미지 변경. 혹은 배경은 selection.xml 파일로 해도 됨.
                    v.setPressed(true);
                }
                mBtn1Pressed = true;
                break;
            case MotionEvent.ACTION_UP:
                mBtn1.setImageResource(R.drawable.modOFF); // 배경이미지 변경. 혹은 배경은 selection.xml 파일로 해도 됨.
                v.setPressed(false);
                mBtn1Pressed = false;
                break;
        }
        return true;
    }
});
Will Kim (43,170 포인트) 님이 2017년 10월 2일 답변
...