直接上图
主要代码,设置listview的模式
//设置ListView模式为默认,CHOICE_MODE_NONE为默认,CHOICE_MODE_SINGLE为单选,CHOICE_MODE_MULTIPLE多选
listview.setChoiceMode(ListView.CHOICE_MODE_NONE);
XML没什么好解释的
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.vcom.listviewmode.MainActivity">
<TextView
android:id="@+id/single"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#a1a0a0"
android:text="单选模式"
android:textSize="18sp"
android:textColor="#ffffff"
android:gravity="center"
/>
<TextView
android:id="@+id/more"
android:layout_width="match_parent"
android:layout_height="40dp"
android:background="#a1a0a0"
android:layout_marginTop="5dp"
android:text="多选模式"
android:textSize="18sp"
android:textColor="#ffffff"
android:gravity="center"
/>
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="5dp"
/>
</LinearLayout>
在adapter中做点击item时改变颜色的处理,不然体现出多选的效果
/**
* 改变选中item的背景色
* @param position
* @param view
*/
@TargetApi(Build.VERSION_CODES.JELLY_BEAN)
public void updateBackground(int position, View view) {
int backgroundId;
if (mListView.isItemChecked(position)) {
backgroundId = R.mipmap.blue3;
} else {
backgroundId = R.mipmap.white;
}
Drawable background = mContext.getResources().getDrawable(backgroundId);
view.setBackground(background);
}
代码中注释很详细,这里就解释那么多