@@ -2,6 +2,7 @@ package com.yhw.demo
22
33import android.content.DialogInterface
44import android.os.Bundle
5+ import android.util.Log
56import android.view.View
67import android.widget.Toast
78import androidx.appcompat.app.AlertDialog
@@ -22,7 +23,7 @@ class RecyclerViewActivity : AppCompatActivity() {
2223
2324 val dataList = mutableListOf<String >()
2425 for (i in 0 .. 100 ) {
25- dataList.add(" this is item" )
26+ dataList.add(" this is item $i " )
2627 }
2728
2829 val deleteBtn = findViewById<AppCompatButton >(R .id.btn_delete)
@@ -31,14 +32,18 @@ class RecyclerViewActivity : AppCompatActivity() {
3132 val adapter = MyRecyclerAdapter (dataList)
3233 recyclerView.adapter = adapter
3334 // 单击
34- adapter.onItemClickListener = object : BaseRecyclerAdapter .OnItemClickListener {
35+ /* adapter.onItemClickListener = object : BaseRecyclerAdapter.OnItemClickListener {
3536 override fun onItemClick(position: Int, view: View) {
36- if (! adapter.isShowCheckBox){
37- Toast .makeText(this @RecyclerViewActivity, " item => $position " , Toast .LENGTH_SHORT )
37+ if (!adapter.isShowCheckBox) {
38+ Toast.makeText(
39+ this@RecyclerViewActivity,
40+ "item => $position",
41+ Toast.LENGTH_SHORT
42+ )
3843 .show()
3944 }
4045 }
41- }
46+ }*/
4247 // 长按
4348 adapter.onItemLongClickListener = object : BaseRecyclerAdapter .OnItemLongClickListener {
4449 override fun onItemLongClick (position : Int , view : View ) {
@@ -125,7 +130,8 @@ class RecyclerViewActivity : AppCompatActivity() {
125130 return @setOnClickListener
126131 }
127132 adapter.isShowCheckBox = false
128- adapter.removeAt(adapter.checkedList)
133+ Log .i(" TAG" , " checked list ${adapter.checkedList.size} " )
134+ adapter.removeAll(adapter.checkedList)
129135 adapter.checkedList.clear()
130136 deleteBtn.visibility = View .GONE
131137 }
@@ -135,11 +141,11 @@ class RecyclerViewActivity : AppCompatActivity() {
135141 /* *
136142 * 直接继承 BaseRecyclerAdapter
137143 */
138- inner class MyRecyclerAdapter (dataList : MutableList <String >) : BaseRecyclerAdapter<String>(
144+ inner class MyRecyclerAdapter (var dataList : MutableList <String >) : BaseRecyclerAdapter<String>(
139145 dataList
140146 ) {
141147 var isShowCheckBox = false
142- var checkedList = mutableListOf<Int >()
148+ var checkedList = mutableListOf<String >()
143149
144150 override fun getItemLayoutId (viewType : Int ): Int {
145151 return R .layout.sample_item_layout
@@ -148,20 +154,28 @@ class RecyclerViewActivity : AppCompatActivity() {
148154 override fun onBindViewItem (holder : RecyclerViewHolder , position : Int , data : String ) {
149155 // 使用 holder.getView(R.id.tv_text) 或者 setText()
150156// val textView = holder.getView<TextView>(R.id.tv_text)
151- holder.setText(R .id.tv_text, " $ data $position " )
157+ holder.setText(R .id.tv_text, data)
152158 holder.setImageResource(R .id.iv_image, R .mipmap.ic_launcher)
153159 val checkBox = holder.getView<AppCompatCheckBox >(R .id.checkbox)
154160 checkBox.visibility = if (isShowCheckBox) View .VISIBLE else View .GONE
155161
156162 holder.itemView.setOnClickListener {
157163 if (isShowCheckBox) {
158164 checkBox.isChecked = ! checkBox.isChecked
165+ val s = dataList[position]
159166 if (checkBox.isChecked) {
160- checkedList.add(position )
167+ checkedList.add(s )
161168 } else {
162- checkedList.remove(position )
169+ checkedList.remove(s )
163170 }
164171 return @setOnClickListener
172+ } else {
173+ Toast .makeText(
174+ this @RecyclerViewActivity,
175+ " item => $position " ,
176+ Toast .LENGTH_SHORT
177+ )
178+ .show()
165179 }
166180 }
167181 }
0 commit comments