我有一个表格行,当它聚焦时我尝试了许多改变颜色的东西,但是在聚焦时它永远不会改变颜色。有没有办法做到这一点?我试过这个也改变了点击的颜色,但只有在它的'聚焦:
时r.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg0.isFocused())
{
arg0.setBackgroundColor(Color.BLUE);
//arg0.isFocused();
}
return false;
}});
答案 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>
尝试这些链接,以解决您的问题
答案 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