【发布时间】:2015-08-15 12:58:47
【问题描述】:
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);
执行此行时,更改会反映在列表中的多个项目中。出了什么问题?在下面显示的图片中,我单击了第 0 项,文本变为“单击”并设置了颜色。但是当我向下滚动时,第 12 项也受到了我点击第 0 项的影响。只有背景颜色的变化得到了反映,而不是文本的变化。我该如何阻止这种情况?
我一直在尝试解决这个问题,如果我的问题不清楚,请下载项目并尝试执行代码以理解我的确切意思。
【问题讨论】:
-
如果您喜欢这个问题的描述性,请点赞。
标签: android listview textview android-imageview android-recyclerview