如何在聚焦时更改TableRow的背景颜色?

时间:2011-06-08 04:53:04

标签: android

我有一个表格行,当它聚焦时我尝试了许多改变颜色的东西,但是在聚焦时它永远不会改变颜色。有没有办法做到这一点?我试过这个也改变了点击的颜色,但只有在它的'聚焦:

r.setOnTouchListener(new OnTouchListener() {
    public boolean onTouch(View arg0, MotionEvent arg1) {
        if(arg0.isFocused())
        {
            arg0.setBackgroundColor(Color.BLUE);
            //arg0.isFocused();
        }
        return false;
}});

3 个答案:

答案 0 :(得分:6)

您需要将行的背景颜色设置为可绘制的状态列表(处理选择,按下,激活,非激活)。

  

http://developer.android.com/guide/topics/resources/drawable-resource.html#StateList

    <?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--  Active state --> 
    <item android:state_selected="true" android:state_focused="false" android:state_pressed="false" android:drawable="@android:color/transparent" />     
<!--  Inactive state--> 
    <item android:state_selected="false" android:state_focused="false"         android:state_pressed="false" android:drawable="@android:color/transparent" />
     <!--  Pressed state-->
     <item android:state_pressed="true" android:drawable="@android:color/yellow" /> 
    <!--  Selected state (using d-pad) -->
     <item android:state_focused="true" android:state_selected="true"         android:state_pressed="false" android:drawable="@android:color/yellow" />
 </selector> 

尝试这些链接,以解决您的问题

http://www.gersic.com/blog.php?id=56

http://developer.android.com/guide/topics/ui/themes.html

答案 1 :(得分:4)

对于黄色的“资源未找到”错误的每个人,只需制作自己的黄色:

创建文件:

 Project
  -> res
    -> values
      - colors.xml

并将其放在文件中:

 <?xml version="1.0" encoding="utf-8"?>
 <resources>
   <color name="yellow">#FFFF00</color>
 </resources>

然后将引用黄色的XML中的位置更改为如下所示:

android:drawable="@color/yellow"

答案 2 :(得分:2)

检查solution