Java RecyclerView在用户选择单个项目时选择多个项目
我创建了recycler视图并对其进行了膨胀,包括文本视图和图像视图。问题是当用户按任意一个位置将其添加到书签时,所选的项目很好,但我发现有另一个项目自动添加了书签,这是什么问题 这是一个密码Java RecyclerView在用户选择单个项目时选择多个项目,java,android,android-recyclerview,recyclerview-layout,Java,Android,Android Recyclerview,Recyclerview Layout,我创建了recycler视图并对其进行了膨胀,包括文本视图和图像视图。问题是当用户按任意一个位置将其添加到书签时,所选的项目很好,但我发现有另一个项目自动添加了书签,这是什么问题 这是一个密码 public void onBindViewHolder(final ViewHolder holder, int position) { Get_Set_Note movie=moviesList.get(position); holder.title.setText(movie.getTit
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);
}
});
}
以下是您可以解决此问题的方法 您需要将一个布尔属性添加到Get\u Set\u注意:我最喜欢一个布尔属性 像这样 Get_Set_Note.java 只需在适配器中根据此条件设置星形映像即可
if(movie.isFavorite){
holder.imageView.setImageResource(R.drawable.btn_star_big_on);
}else{
holder.imageView.setImageResource(R.drawable.btn_star_big_off);
}
单击listener,您可以设置boolean属性并通知适配器
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()
}
});
}
创建现场-不要使用外部服务来显示代码。您创建了吗?数据模型中的布尔值?用于填充和填充星形的?public void on BindViewHolder最终视图holder,int position{Get_Set_Note movie=moviesList.getposition;holder.title.setTextmovie.getTitle;holder.time.setTextmovie.getTime;holder.imageView.setonclicklistener新建视图.OnClickListener{@Override public void onClickView v{holder.imageView.setImageResourceR.drawable.btn_star_big_on;};单击任何回收商查看项目将其添加书签时的上方代码。但它会将多个项目添加书签。请将您的问题提供一个演示该问题的示例。谢谢Arbaz PirwaniMy朋友
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()
}
});
}