Android中ListView中selector使用

来源:互联网 发布:网络课程验收 编辑:程序博客网 时间:2024/05/19 23:17

在ListView中要实现item的选中,不能使用pressed,因为只有按下的时候调用selector,但是在松开时就会变会原来的默认状态。当然checked也不能使用,这个时候我们在selector中使用state_enabled。

来看看item中一个TextView怎么设置点击选中

<TextView        android:id="@+id/tv_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="标题"        android:enabled="false"        android:textSize="28sp"        android:layout_marginTop="20dp"        android:textColor="@drawable/selector_menu_text_color"        android:layout_gravity="center"        />

selector的代码

<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:state_enabled="true" android:color="@android:color/holo_red_dark"/>    <item android:color="@android:color/white"/></selector>

我们需要在代码中动态的更新item的选中状态

对ListView设置item点击监听事件,记录当前点击的item位置

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {            @Override            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {                mPosition = position;//当前点击的menu                adapter.notifyDataSetChanged();            }        });

在adapter中getView中添加,即可

if (mPosition == position) {                tvTitle.setEnabled(true);            } else {                tvTitle.setEnabled(false);            }
0 0
原创粉丝点击