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

버튼이 눌려있게 하는 상태 질문입니다.

0 추천
간단한 거일지도 모르겠습니다만... 버튼이 6개 정도 있고 각 버튼을 눌렀을 때 적용이 되는 이벤트가 있습니다.

지금은 selector를 이용해서 focused, pressed 상태와 디폴트 상태로 구분해서 on off를 적용시켜 놓았는데요

눌렀다 땠을 때 off 상태로 바뀌는 것이 아닌 해당 버튼을 누르면 다른 버튼을 누를 때까지 on 상태가 되게 하고싶습니다.

아니면 셀럭터 말고 액티비티에서 수정을 해야 할까요?

셀렉터가 약간 헷갈려서 질문드립니다. ㅠㅠ
BMS (520 포인트) 님이 2014년 8월 22일 질문

1개의 답변

0 추천
 
채택된 답변
핸들러의 postDelay를 써서 500ms 후에 셀렉터를 바꿔줘보세요
쎄미 (162,410 포인트) 님이 2014년 8월 22일 답변
BMS님이 2014년 8월 22일 채택됨
셀렉터는 아래와 같습니다.
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_focused="true"
        android:state_pressed="true"
        android:drawable="@drawable/btn_1month_over" />
    <item
        android:state_focused="true"
        android:state_pressed="true"
        android:drawable="@drawable/btn_1month_over" />       
    <item
        android:state_focused="false"
        android:state_pressed="true"
        android:drawable="@drawable/btn_1month_over" />
    <item
        android:drawable="@drawable/btn_1month_off" />    
</selector>

핸들러를 쓴다고 하면 액티비티 단에서 처리를 한다는 건가요?
혹시 이렇게 하는건지 다시 질문드려요...

btn3Month.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
            {
                Handler handler = new Handler();
                handler.postDelayed(new Runnable()
                {
                  @Override     public void run()
                  {
                  }
                }, 3000);
                Calendar cal = Calendar.getInstance();
                cal.add(Calendar.MONTH, -3);
                String fromDt = dateFormat.format(cal.getTime());
                edtFromDt.setText(fromDt);
                edtToDt.setText(toDay);
            }
        });
네 그런식 맞아요......
...