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

nge*_*esh 2 android

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

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

Stu*_*uti 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> 
Run Code Online (Sandbox Code Playgroud)

尝试这些链接,为你的问题

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

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