java - 当用户选择单个项目时,RecyclerView 选择多个项目
问题描述
我创建了回收站视图并为其添加了许多元素,例如文本视图和图像视图,问题是当用户按下任何一个位置为它添加书签时,选择的项目很好,但我发现还有另一个项目自动添加书签是什么问题。
这是一个代码
public void onBindViewHolder(final ViewHolder holder, int position) {
Get_Set_Note movie=moviesList.get(position);
holder.title.setText(movie.getTitle());
holder.time.setText(movie.getTime());
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
holder.imageView.setImageResource(R.drawable.btn_star_big_on);
}
});
}
https://drive.google.com/file/d/1bg2T3krPedlC6ue_sldk4X8zyW675EzV/view?usp=drivesdk
解决方案
这是您可以解决的方法
您需要添加Get_Set_Note
一个布尔属性isFavorite
像这样
Get_Set_Note.java
Boolean isFavorite = false
只需在您的适配器中根据此条件设置您的星形图像
if(movie.isFavorite){
holder.imageView.setImageResource(R.drawable.btn_star_big_on);
}else{
holder.imageView.setImageResource(R.drawable.btn_star_big_off);
}
在点击侦听器上,您可以设置布尔属性并通知适配器
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
if(movie.isFavorite){
movie.isFavorite = false
}else{
movie.isFavorite = true
}
notifyDataSetChanged()
}
});
然后最后你bindViewHolder
会是这样的
public void onBindViewHolder(final ViewHolder holder, int position) {
Get_Set_Note movie=moviesList.get(position);
holder.title.setText(movie.getTitle());
holder.time.setText(movie.getTime());
if(movie.isFavorite){
holder.imageView.setImageResource(R.drawable.btn_star_big_on);
}else{
holder.imageView.setImageResource(R.drawable.btn_star_big_off);
}
holder.imageView.setOnClickListener(new View.OnClickListener() {
@Override public void onClick(View v) {
if(movie.isFavorite){
movie.isFavorite = false
}else{
movie.isFavorite = true
}
notifyDataSetChanged()
}
});
}
推荐阅读
- maven - 当我将打包设置为捆绑时,Maven 项目中的 PluginVersionResolutionException
- azure-devops - Azure DevOps Databricks Pipeline Release 退出并出现 [错误]Bash 退出并出现代码“1”
- javascript - 以角度填充数据下拉onclick表格行(基于表格行数据)
- mongodb - MongoDB Redash - FieldPath 字段名称可能不包含“。”
- sql - 在 Laravel 6 中使用 sql 查询统计每个部门的工人数
- ios - 在选项卡之间移动时如何保留推送视图?
- powershell - 如何通过 PowerShell 或 Graph API 在 Micosoft Teams 中设置成员设置“允许成员上传自定义应用程序”
- lstm - 带手套的 Bi-LSTM - 词形还原问题
- python - 如何基于包含时间戳的 csv 文件名加载数据帧
- r - 从去年到给定年份的外推行可用