我是 Kotlin 新手,我正在尝试使用 MVVM 创建应用程序。所以我想做的是使用存储库中的改造进行网络调用,并将数据返回到视图模型,然后观察片段中的数据,一旦数据发生变化,我就会将其通知回收器视图适配器,一切都会发生工作正常。现在,问题是我想从 recyclerview 更新 ViewHolder 的实时数据。当我单击 recyclerView 中的复选框时,应该更新数据。但我不知道这样做的实际方法是什么。
这是我的 ViewHolder。
class MainActivityViewModel : ViewModel() {
private var mutableLiveGitUsers: MutableLiveData<ArrayList<GitUsers>>? = null
private lateinit var gitUsersRepository: GitUsersRepository
var allUsersListener: AllUsersListener? = null
fun init() {
gitUsersRepository = GitUsersRepository()
allUsersListener?.onStarted()
mutableLiveGitUsers = gitUsersRepository.getGitUsers()
allUsersListener?.onSuccess(mutableLiveGitUsers!!)
}
fun getGitUsersData(): MutableLiveData<ArrayList<GitUsers>>? {
return mutableLiveGitUsers
}
Run Code Online (Sandbox Code Playgroud)
}
这是我观察片段变化的方式
mutableLiveGitUsers.observe(this, Observer {
progressBar.hide()
rvAllUsersAdapter = AllUsersAdapter(mainActivityViewModel.getGitUsersData()?.value!!)
rvAllUsers.adapter = rvAllUsersAdapter
rvAllUsersAdapter.notifyDataSetChanged()
})
Run Code Online (Sandbox Code Playgroud)
RecylerView 适配器
class AllUsersAdapter(private var gitUsersArrayList: ArrayList<GitUsers>) :
RecyclerView.Adapter<AllUsersAdapter.AllUsersViewHolder>() {
override fun onCreateViewHolder(parent: …Run Code Online (Sandbox Code Playgroud) android kotlin android-recyclerview android-mvvm android-livedata