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

标签 android android-widget android-event

我有一个包含 LinearLayout 的 TableRow,然后这个 LinearLayout 包含一个 TextView。我想要的是,一旦点击了 TextView,整个 TableRow 的背景颜色就会改变。

我尝试使用 getParent() 和 performClick() 将点击事件从 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>

最佳答案

试试这个

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

关于android - 单击其子项时更改父项的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10256564/

相关文章:

android - 大型字符串数组会卡住我的程序吗?

java - Android:插入数组时出现空指针异常

android - 更改 Android 2.0 中的复选框大小

javascript - Android 自定义事件转 Javascript EventListener

android - 检测布局外的触摸事件

javascript - 在 WebView 中打开一个弹出窗口

android - React-Native 中的抽屉导航

android - 如何最大化 Android 小部件尺寸(宽度)?

android - 从 EditText 中提取一行

android - 如何知道在布局 OnClickListener 中单击了哪个 View ?