Как изменить цвет фона TableRow при фокусировке?

У меня есть строка таблицы, и я попытался много чего изменить свой цвет, когда он сфокусировался, но при фокусировке он никогда не меняет цвет. Есть какой-либо способ сделать это? Я также попробовал это, изменив цвет при нажатии, но только когда его "сфокусировано":

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

Ответ 1

Вам нужно установить цвет фона вашей строки в список состояний, который можно вычертить (который обрабатывает выбранный, нажатый, активный, неактивный).

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> 

попробуйте эти ссылки тоже, для проблемы с ur

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

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

Ответ 2

Для всех, у кого ошибка "ресурс не найден" для желтого, просто сделайте свой собственный желтый:

Создайте файл:

 Project
  -> res
    -> values
      - colors.xml

И поместите это в файл:

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

Затем измените места в XML, которые ссылаются на желтый, чтобы читать следующим образом:

android:drawable="@color/yellow"