如何将多个选定项目从 recyclerview 发送到另一个 activity - kotlin Android
How to send multiple selected utem from recyclerview to another activity - kotlin Android
我有联系人列表,其中我 select 多个项目并传递给另一个 activity ,在 select 多个项目后在 Recyclerview 中我如何将它传递给另一个 activity
这是我的适配器 class
override fun onBindViewHolder(holder: ContactViewHolder, position: Int) {
val item = contact[position]
holder.name.text = item.name
holder.number.text = item.number
holder.linlay.setOnLongClickListener{
selectItem(holder,item,position)
true
}
holder.linlay.setOnClickListener{
if(itemSelected.contains(position)){
itemSelected.remove(position)
holder.linlay.setBackgroundColor(Color.DKGRAY)
item.isSelect = false
if(itemSelected.isEmpty()){
isEnable=false
}
}
else if(isEnable){
selectItem(holder,item,position)
}
}
}
private fun selectItem(holder: ContactAdapter.ContactViewHolder, item: ContactModel, position: Int) {
isEnable = true
itemSelected.add(position)
item.isSelect = true
holder.linlay.setBackgroundColor(Color.YELLOW)
}
在 mainActivity class
中,用于转到另一个 activity 的按钮而不是 recyclerview
class Mainactivity : AppComapctActivity(){
ovveride fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val btn_send = findViewById<Button>(R.id.btn_send)
btn_send.setOnClickListner{
val intent = Intent(this,HomeActivity::class.java)
startActivity(intent)
}
}
当您在 selectItem
方法中 select 一个联系人时,您应该在该列表中创建一个 MutableList
联系人,例如 MutableList,您将存储 selected 联系人以前,由于您可以 remove/update selected 联系人列表,您应该在 select 所有联系人之后使用 MutableList
,您应该有一个按钮可以转到下一个屏幕。在那里你应该只发送 ContactModel
的 MutableList
让我为你做一些伪代码
private fun selectItem(holder: ContactAdapter.ContactViewHolder, item: ContactModel, position: Int) {
isEnable = true
itemSelected.add(position)
item.isSelect = true
holder.linlay.setBackgroundColor(Color.YELLOW)
if(item.isSelect)
myMutableContactList.add(item)
else
myMutableContactList.remove(item)
}
记得先创建 mutableList 就像
val myMutableContactList = mutableListOf<ContactModel>()
然后,如果您有转到下一个屏幕的按钮,只需发送此列表
当您按下按钮并转到下一个 fragment/activity 时,一个好的做法是将此 mutablelist
转换为 list
,因为它在发送后不会改变。
你可以通过简单地在你的 mutableList
上使用 toList()
来完成
我有联系人列表,其中我 select 多个项目并传递给另一个 activity ,在 select 多个项目后在 Recyclerview 中我如何将它传递给另一个 activity 这是我的适配器 class
override fun onBindViewHolder(holder: ContactViewHolder, position: Int) {
val item = contact[position]
holder.name.text = item.name
holder.number.text = item.number
holder.linlay.setOnLongClickListener{
selectItem(holder,item,position)
true
}
holder.linlay.setOnClickListener{
if(itemSelected.contains(position)){
itemSelected.remove(position)
holder.linlay.setBackgroundColor(Color.DKGRAY)
item.isSelect = false
if(itemSelected.isEmpty()){
isEnable=false
}
}
else if(isEnable){
selectItem(holder,item,position)
}
}
}
private fun selectItem(holder: ContactAdapter.ContactViewHolder, item: ContactModel, position: Int) {
isEnable = true
itemSelected.add(position)
item.isSelect = true
holder.linlay.setBackgroundColor(Color.YELLOW)
}
在 mainActivity class
中,用于转到另一个 activity 的按钮而不是 recyclerviewclass Mainactivity : AppComapctActivity(){
ovveride fun onCreate(savedInstanceState: Bundle?){
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val btn_send = findViewById<Button>(R.id.btn_send)
btn_send.setOnClickListner{
val intent = Intent(this,HomeActivity::class.java)
startActivity(intent)
}
}
当您在 selectItem
方法中 select 一个联系人时,您应该在该列表中创建一个 MutableList
联系人,例如 MutableList,您将存储 selected 联系人以前,由于您可以 remove/update selected 联系人列表,您应该在 select 所有联系人之后使用 MutableList
,您应该有一个按钮可以转到下一个屏幕。在那里你应该只发送 ContactModel
让我为你做一些伪代码
private fun selectItem(holder: ContactAdapter.ContactViewHolder, item: ContactModel, position: Int) {
isEnable = true
itemSelected.add(position)
item.isSelect = true
holder.linlay.setBackgroundColor(Color.YELLOW)
if(item.isSelect)
myMutableContactList.add(item)
else
myMutableContactList.remove(item)
}
记得先创建 mutableList 就像
val myMutableContactList = mutableListOf<ContactModel>()
然后,如果您有转到下一个屏幕的按钮,只需发送此列表
当您按下按钮并转到下一个 fragment/activity 时,一个好的做法是将此 mutablelist
转换为 list
,因为它在发送后不会改变。
你可以通过简单地在你的 mutableList
上使用toList()
来完成