java - 回收者查看项目不改变其颜色

标签 java android colors onclick android-recyclerview

我有一个回收器 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/

相关文章:

java - 为什么这个简单的 JSON 编码示例在 Apache Camel 中不起作用?

android - 创建动态 ListPreference (Android)

android - 通过代码创建布局

android - Kotlin 1.6.0 打破了proguard?

html - jscolor 在引导模式中不起作用

r - 为绘图中的标题部分着色

java - 如何按集合大小总和对 Map<String, List<Set<Long>>> 进行排序?

java - 使用 indexOf() 迭代单字符串列表

java - 如何从 akka 流源获取迭代器?

colors - 如何在 LESS 中反转颜色