1、Bean类 data class CheckPoint( var address: String, var checked: Boolean, var deviceCode: String, var deviceType: Int, var lat: Double, var lpTaskCheckpId: Int, var lon: Double, var photoImgIds: String, var photoPoint: Boolean, var photoed: Boolean ) : Serializable
2、Adapter class SelectTaskListAdapter( mDatas: MutableList<CheckPoint> ) : BaseQuickAdapter<CheckPoint, BaseViewHolder>( R.layout.recycler_select_task_list, mDatas ) { private var checkedPosition: Int = -1 fun setDefSelect(position: Int) { this.checkedPosition = position notifyDataSetChanged() } override fun convert( helper: BaseViewHolder, item: CheckPoint ) { helper.setText(R.id.tv_map_name, item.address) helper.setText(R.id.tv_name, item.deviceCode) val ll_item_message = helper.getView<ConstraintLayout>(R.id.ll_all) var position = helper.adapterPosition if (checkedPosition != -1) { if (checkedPosition == position) { ll_item_message.setBackgroundResource(R.drawable.shape_blue_bg) } else { ll_item_message.setBackgroundResource(R.drawable.shape_bg) } } when (item.photoed) { true -> helper.setImageResource( R.id.v_task_type, R.drawable.public_patrol_map_photo ) false -> helper.setImageResource( R.id.v_task_type, R.drawable.public_patrol_map_location ) } } }
3、布局文件recycler_select_task_list_item <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="@dimen/public_dp_15" android:layout_marginEnd="@dimen/public_dp_15" android:id="@+id/ll_all" android:layout_marginBottom="@dimen/public_dp_2" android:background="@drawable/routing_inspection_shape_tem_bg" android:elevation="@dimen/public_dp_5"> <ImageView android:padding="@dimen/public_dp_10" android:id="@+id/v_task_type" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/public_dp_10" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="@dimen/public_dp_6" android:layout_marginEnd="@dimen/public_dp_15" android:text="显示完为止" android:textColor="@color/public_color_222222" android:textSize="@dimen/public_dp_14" android:textStyle="bold" app:layout_constrainedWidth="true" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toEndOf="@id/v_task_type" app:layout_constraintTop_toTopOf="@id/v_task_type" /> <TextView android:id="@+id/tv_map_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/public_dp_8" android:layout_marginEnd="@dimen/public_dp_15" android:paddingBottom="@dimen/public_dp_10" android:text="城东片区" android:textColor="@color/public_color_222222" android:textSize="@dimen/public_dp_12" app:layout_constrainedWidth="true" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="@id/tv_name" app:layout_constraintTop_toBottomOf="@id/tv_name" /> <View android:id="@+id/routing_inspection_v_line" android:layout_width="@dimen/public_dp_0" android:layout_height="@dimen/public_dp_1" android:layout_marginTop="@dimen/public_dp_10" android:background="@color/public_color_f2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/tv_map_name" /> </androidx.constraintlayout.widget.ConstraintLayout>
shape_tem_bg、shape_bg为背景色,请自行定义更改
public_dp_相关数据自行定义的dp数据
关键代码
fun setDefSelect(position: Int) { this.checkedPosition = position notifyDataSetChanged() }
4、activity中使用
mSelectTaskListAdapter.onItemClickListener = BaseQuickAdapter.OnItemClickListener { _, _, position -> mItem = mSelectTaskListAdapter.data[position] mSelectTaskListAdapter.setDefSelect(position); }