2011-06-08 126 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"