- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
This is the project我想跑。这是我在 RecyclerView.Adapter 类中的 onBindViewHolder 代码
@Override
public void onBindViewHolder(ViewHolder holder, final int position) {
TextView title = (TextView) holder.view.findViewById(R.id.title);
final TextView desc = (TextView) holder.view.findViewById(R.id.desc);
final ImageView imageView = (ImageView) holder.view.findViewById(R.id.imageView);
title.setText(pojos.get(position).getTitle());
desc.setText(pojos.get(position).getDesc());
imageView.setImageResource(pojos.get(position).getImage());
imageView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
desc.setText("clicked");
desc.setBackgroundColor(Color.BLUE);
imageView.setImageResource(R.drawable.heart_red);
}
});
}
列表加载正常,问题发生在调用 imageView 的 onclicklistener 时。
desc.setText("clicked");
上面的行对它被点击的列表项进行了更改。但是
desc.setBackgroundColor(Color.BLUE);
执行此行时,更改会反射(reflect)在列表中的多个项目中。出了什么问题?在下面显示的图片中,我单击了项目 0,文本更改为“已单击”并设置了颜色。但是当我向下滚动时,第 12 项也受到我点击第 0 项的影响。只有背景颜色变化得到反射(reflect),而不是文本变化。我该如何阻止它?
我已经尝试解决这个问题很长时间了,如果我的问题不清楚,请下载项目并尝试执行代码以理解我的确切意思。
最佳答案
只需在您的适配器类中的 getItemCount 方法之后添加一个方法
@Override
public int getItemViewType(int position) {
return position;
}
解决问题
关于android - RecyclerView ambiguos setVisibility函数,点击一个 View 影响多个 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30584141/
这个问题在这里已经有了答案: Reference to function is ambiguous [duplicate] (2 个答案) 关闭 6 年前。 编译以下代码时: #include u
我正在尝试创建一个能够根据特定条件从各种表中提取数据的 SELECT 语句,但我不断收到相同的错误“错误代码 1052:where 子句中的列用户名不明确” 这是sql语句 SELECT * FROM
您将在下面看到一个 playground,我会在其中尝试说明我的问题。我有一个类 ( Foo ),其中包含一些重载的泛型方法 ( bar() ),其返回类型取决于泛型参数。我有 3 种方法: 必须返回
This is the project我想跑。这是我在 RecyclerView.Adapter 类中的 onBindViewHolder 代码 @Override public void o
我是一名优秀的程序员,十分优秀!