当我单击RecyclerView中的复选框时,它被激活,并且一切正常,但是当我刷新布局时,不再选中该复选框。
在使用Firestore刷新RecyclerView之后,如何保持复选框处于激活状态?
User.class:
Geth version: 1.9.6-stable
OS & Version: Ubuntu 18.04
Git Commit: bd05968077f27f7eb083404dd8448157996a8788
Architecture: amd64
Protocol Versions: [63]
Network Id: 1
Go Version: go1.11.5
Operating System: linux
我的适配器:CustomAdapter.class
class User {
lateinit var userphoto: StorageReference
lateinit var username:String
lateinit var title:String
lateinit var notes: String
lateinit var id: String
var isSelected:Boolean = false
constructor( id: String?,username:String?,userphoto:StorageReference?,title: String?,notes: String?,isSelected:Boolean?) {
this.title= title!!
this.id= id!!
this.username= username!!
this.notes= notes!!
this.isSelected= isSelected!!
this.userphoto= userphoto!!
}
fun setIsSelected(selected: Boolean) {
isSelected = selected
}
}
myMainactivity:Recycleractivity.class
class CustomAdapter( var mylist:ArrayList<User>)
:RecyclerView.Adapter<CustomAdapter.viewHolde>() {
var db = FirebaseFirestore.getInstance();
var currentuser = FirebaseAuth.getInstance().currentUser!!
private val notebookRef4 = db.collection("ShowData")
lateinit var c: Context
override fun onCreateViewHolder(parent: ViewGroup,viewType: Int): viewHolde {
var v = LayoutInflater.from(parent.context)
.inflate(R.layout.iktem_list,parent,false)
return viewHolde(v)
}
override fun getItemCount(): Int {
return mylist.size
}
override fun onBindViewHolder(holder: viewHolde,position: Int) {
holder.likee.setOnCheckedchangelistener(null)
holder.likee.setChecked(mylist.get(position).isSelected)
holder.likee.setOnCheckedchangelistener { buttonView,isChecked ->
mylist.get(position).setIsSelected(isChecked)
var mynote = UserUID(mylist.get(position).id)
if (isChecked) {
notebookRef4.document(currentuser.uid)
.collection("like").document(mylist.get(position).id).set(mynote)
mylist.get(position).setIsSelected(isChecked)
} else {
notebookRef4.document(currentuser.uid)
.collection("like").document(mylist.get(position).id).delete()
mylist.get(position).setIsSelected(false)
}
}
}
@SuppressLint("ParcelCreator")
class viewHolde(item: View) : RecyclerView.ViewHolder(item){
@SuppressLint("WrongViewCast")
var likee = item.findViewById(R.id.toggleButton) as ToggleButton
}}