Android 单击父对象的子对象时更改其背景色

Android 单击父对象的子对象时更改其背景色,android,android-widget,android-event,Android,Android Widget,Android Event,我有一个包含LinearLayout的TableRow,然后这个LinearLayout包含一个TextView。我想要的是,一旦单击TextView,整个TableRow将更改其背景色 我尝试使用getParent和performClick将单击事件从TextView传递到TableRow。确实调用了TableRow的onClick方法,但其背景颜色没有改变 当然,我已经通过使用 row.setBackgroundResource(R.drawable.menu_item_bgcolor);

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

我尝试使用getParent和performClick将单击事件从TextView传递到TableRow。确实调用了TableRow的onClick方法,但其背景颜色没有改变

当然,我已经通过使用

row.setBackgroundResource(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>
试试这个

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);
试试这个

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);

能否粘贴完整的xml文件能否粘贴完整的xml文件我将setImageDrawable更改为setBackgroundDrawable,因为TableRow上不存在setImageDrawable。当我单击TableRow时,它将更改颜色。但是当我单击TextView时,TableRow不会改变颜色。我仍然无法获取此信息…我将setImageDrawable更改为setBackgroundDrawable,因为TableRow上不存在setImageDrawable。当我单击TableRow时,它将更改颜色。但是当我单击TextView时,TableRow不会改变颜色。我还是不能得到这个。。。