recyclerview简单实现单选多选反选全选

912 阅读1分钟

业务代码中的选择工具类,一个简单的recyclerAdapter

Quick Setup

dependencies {
	 implementation 'com.joketng:choseutil:1.0.1'
}

Usage

Add RecyclerView to your layout

    <android.support.v7.widget.RecyclerView
            android:id="@+id/rv_chose"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            />

Add LayoutManager

    rv_chose.layoutManager = LinearLayoutManager(context)
    //or set other LayoutManager
    

then set recyclerAdapter

choseAdapter = object :ChoseAdapter<MyChoseBean>(this, listContent){
            override fun bindData(holder: MyViewHolder) {
                holder.itemView.tv_text.text = listContent[holder.layoutPosition].title
            }

            override fun createCustomView(layout: LinearLayout) {
                LayoutInflater.from(context).inflate(R.layout.item_custom, layout, true)
            }
        }.setOnNotSelectedListener {
            it.itemView.img_check.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.vector_drawable_check_box_off))
        }.setOnIsSelectedListener {
            it.itemView.img_check.setImageDrawable(ContextCompat.getDrawable(context, R.drawable.vector_drawable_check_box_on))
        }.setOnClickListener {
//            Toast.makeText(context,"${it.adapterPosition}",Toast.LENGTH_SHORT).show()
        }.setSingleChose(false)

在createCustomView()方法中添加列表自定义布局文件,在bindData()方法中绑定数据到控件,setOnNotSelectedListener()方法控制没有选中时控件的显示方式,setOnIsSelectedListener()方法控制选中状态下控件的显示方式