2011-06-08 130 views
2

我有一个表格行,我尝试了很多事情来改变它的颜色,当它聚焦时,它不会改变颜色。有没有办法做到这一点?我想这也该变了颜色上点击,但只有当它的聚焦:如何在关注时更改TableRow的背景颜色?

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

回答

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

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"