单击其子项时更改父项的背景颜色

时间:2012-04-21 05:42:57

标签: android android-widget android-event

我有一个包含LinearLayout的TableRow,然后这个LinearLayout包含一个TextView。我想要的是,一旦单击TextView,整个TableRow将改变其背景颜色。

我尝试使用getParent()和performClick()将Click事件从TextView传递给TableRow。 TableRow的onClick()方法会被调用,但其背景颜色不会改变。

当然,我已经使用

设置了选择器
row.setBackgroundResource(R.drawable.menu_item_bgcolor);

row.setBackgroundDrawable(activity.getResources().getDrawable(R.drawable.menu_item_bgcolor));

不起作用。任何人都可以对此提供任何见解吗?谢谢,

以下是选择器xml文件:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

<item android:state_pressed="true" android:drawable="@drawable/menu_item_pressed" />
<item android:state_focused="true" android:drawable="@drawable/menu_item_pressed" />
<item android:drawable="@drawable/menu_item_normal" />

</selector>

1 个答案:

答案 0 :(得分:0)

试试这个

StateListDrawable states = new StateListDrawable();
states.addState(new int[] {android.R.attr.state_pressed},
    getResources().getDrawable(R.drawable.pressed));
states.addState(new int[] {android.R.attr.state_focused},
    getResources().getDrawable(R.drawable.focused));
states.addState(new int[] { },
    getResources().getDrawable(R.drawable.normal));
row.setImageDrawable(states);