我有一个回收器 View 和一个网格布局管理器。对于为回收器 View 膨胀的布局项,我设置了这样的背景颜色
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
android:orientation="vertical">
<TextView
android:id="@+id/regNo"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0.9"
android:background="@drawable/student_li_bgcolor"
android:gravity="center"
android:padding="7dp"
android:clickable="true"
android:text="15BEC0584"
android:textColor="#64DD17"
android:textSize="17dp" />
</LinearLayout>
student_li_bgcolor的内容是这样的
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_selected="true">
<shape>
<solid
android:color="#64DD17"
/>
</shape>
</item>
<item
android:state_pressed="true"
>
<shape>
<solid
android:color="#ffffff"
/>
</shape>
</item>
<item
android:state_selected="false"
>
<shape>
<solid
android:color="#ffffff"
/>
</shape>
</item>
</selector>
我想要实现的是将项目颜色更改为绿色(如果用户至少按下一次)。
使用此代码
<item
android:state_pressed="true"
>
<shape>
<solid
android:color="#ffffff"
/>
</shape>
</item>
<item
android:state_pressed="false"
>
<shape>
<solid
android:color="#ffffff"
/>
</shape>
</item>
我可以在点击时更改背景颜色。但是一旦用户移开手指,它就会恢复到原来的颜色。我不想要这样。请帮助我...提前致谢...
最佳答案
如果你想永久改变背景颜色,你应该添加 OnClickListener
并在 OnClickListener.onClick()
中执行此操作.
<selector>
只是一个状态列表资源,它根据按钮的当前状态更改外观。
如何使用onClickListener
请引用this .
如果能有所帮助,我很高兴。
关于java - 回收者查看项目不改变其颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42788885/