2011-09-29 2 views
2

나는설정 버튼 상태는 프로그램

<?xml version="1.0" encoding="utf-8"?> 
<selector 
    xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true" > 
     <shape> 
      <gradient 
       android:endColor="@color/orange_light" 
       android:startColor="@color/orange" 
       android:angle="270" />    
      <corners 
       android:radius="6dp" /> 
      <padding 
       android:left="10dp"     
       android:right="10dp" /> 
     </shape> 
    </item> 

    <item android:state_focused="true" > 
     <shape> 
      <gradient 
       android:endColor="@color/orange_light" 
       android:startColor="@color/orange" 
       android:angle="270" /> 
      <corners 
       android:radius="6dp" /> 
      <padding 
       android:left="10dp"     
       android:right="10dp" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <gradient 
       android:endColor="@color/grey_light" 
       android:startColor="@color/grey" 
       android:angle="270" /> 
      <corners 
       android:radius="6dp" /> 
      <padding 
       android:left="10dp" 
       android:right="10dp" /> 
     </shape> 
    </item> 
</selector> 

내 버튼의 상태를 정의하고 내 버튼의 배경으로 설정하십시오.

내가 그것을 누르면 색이 바뀌지 만 일단 눌렀다 떼면 '눌렀다'색을 유지하고 싶습니다 (어떤 단추가 활성 상태인지 보여주기 위해).

어떻게하면됩니까? requestFocus() 당신이 필요 ...

감사

답변

2

잘 당신의 setOnClickListener에서 당신은 어떤 논리를 구현할 수 있습니다. 예를 들어 버튼이 눌려지면 하나의 색을 얻고 다른 버튼을 누를 때까지 그 색을 유지하고 첫 번째 버튼의 배경보다 두 번째 버튼을 누르면 기본값으로 재설정됩니다 ....

당신은 무엇을 구현할 수 있습니까? 당신은 단지 약간의 논리를 추가 할 필요가 있습니다. 당신이 당신의 버튼을 그냥 시간에 대한 몇 가지 색상을 가지고 싶다면

는이

addButtonLayout.setOnTouchListener(new OnTouchListener() { 

    public boolean onTouch(View v, MotionEvent event) { 
     if (event.getAction() == MotionEvent.ACTION_UP) { 
     imageAddSign.setImageResource(R.drawable.a); 
     }else{ 
     imageAddSign.setImageResource(R.drawable.b); 
     } 
     return false; 
    } 
}); 
0

내 생각을, 작동하지 않는 것은 확인란이 아닌 버튼입니다. 거기에 배경을 설정하거나 더 많은 기능이 필요한 경우 서브 클래 싱을 시도하십시오.

+0

왜 당신이 체크 박스 생각처럼 할 수있는 터치 리스너에 오버라이드 (override)보다 프레스 상태에? ToggleButton 일 수도 있지만 CheckBox는 거의 없습니다. – CoolMind