问题描述: 在一个使用MVVM架构的Android RecyclerView项目中,发现点击事件不起作用。
解决方案:
MVVM架构中的点击事件处理示例代码:
private MutableLiveData<Boolean> itemClicked = new MutableLiveData<>();
public LiveData<Boolean> getItemClicked() {
return itemClicked;
}
public void onItemClick() {
itemClicked.setValue(true);
}
public class MyViewHolder extends RecyclerView.ViewHolder {
private ItemViewModel viewModel;
public MyViewHolder(View itemView, ItemViewModel viewModel) {
super(itemView);
this.viewModel = viewModel;
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
viewModel.onItemClick();
}
});
}
}
viewModel.getItemClicked().observe(this, new Observer<Boolean>() {
@Override
public void onChanged(Boolean clicked) {
if (clicked) {
// 执行点击事件的操作
}
}
});
推荐的腾讯云相关产品和产品介绍链接地址:
云+社区开发者大会(杭州站)
GAME-TECH
GAME-TECH
腾讯云“智能+互联网TechDay”华南专场
腾讯云“智能+互联网TechDay”华北专场
云+社区技术沙龙[第19期]
云+社区开发者大会 长沙站
云+社区技术沙龙第33期
TVP技术闭门会
技术创作101训练营
领取专属 10元无门槛券
手把手带您无忧上云