Recycler View Item不改变其颜色

时间:2017-03-14 14:36:40

标签: java android colors onclick android-recyclerview

我有一个回收者视图和一个网格布局管理器。对于为回收者视图充气的布局项目,我设置了这样的背景颜色

<?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>

我可以在点击时更改背景颜色。但是一旦用户移开手指,它就会恢复原来的颜色。我不想要那个。请帮助我......提前致谢...

1 个答案:

答案 0 :(得分:0)

如果您想永久更改背景颜色,则应添加OnClickListener并在OnClickListener.onClick()中执行此操作。

<selector>只是一个状态列表资源,可根据按钮的当前状态更改外观。

如何使用onClickListener请参阅this

如果能有所帮助,我很高兴。