我在XML里,有个BUTTON
<Button  android:id="@+id/btnOverzz"  android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/selector_btn_over" android:layout_marginRight="11.0dip" />  selector_btn_over.xml以下
<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
  <item android:state_pressed="true" android:drawable="@drawable/btn_over_odd2" /> 
  <item android:state_focused="true" android:drawable="@drawable/btn_over_odd" /> 
  <item android:drawable="@drawable/btn_over_odd" /> 
</selector>我在源代码里执行以下句语句后,
((Button) findViewById(R.id.btnOverzz)).setBackgroundResource(R.drawable.btn_over);    BUTTON就不能正常了,按下后没有任何变化,大家知道是什么原因吗?该如何解决。

解决方案 »

  1.   

    <?xml version="1.0" encoding="UTF-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">   
      <item android:state_pressed="true" android:drawable="@drawable/btn_over_odd2" />  
      <item android:state_focused="true" android:drawable="@drawable/btn_over_odd" />  
      <item android:drawable="@drawable/btn_over_odd" />  
    </selector>
    你这个xml只处理了按下和聚焦的为true的情况,并未做为false的情况,当然没效果咯
      

  2.   

    不是有缺省的第三种吗?
    已经设置了background,为什么这里((Button) findViewById(R.id.btnOverzz)).setBackgroundResource(R.drawable.btn_over)还要再设置?
      

  3.   


    注意后面跟上的是selector的资源ID。
    android:background="@drawable/selector_btn_over" 等同于
    setBackgroundResource(R.drawable.selector_btn_over);