Java Android viewholder onclick更新更多实例

Java Android viewholder onclick更新更多实例,java,android,listview,view,onclick,Java,Android,Listview,View,Onclick,对于我的android应用程序,我使用的是ViewHolder模式。 每当我在listview中单击imageview时,该行就会更新,但其他行也会更新 每当我点击“喜欢”按钮时,其他图像也会收到用户喜欢的图像。这怎么可能 这是我的持票人代码: public class MyAdapter extends ArrayAdapter<MyModel> { Context context; int layoutResourceId; List<MyModel> data =

对于我的android应用程序,我使用的是ViewHolder模式。 每当我在listview中单击imageview时,该行就会更新,但其他行也会更新

每当我点击“喜欢”按钮时,其他图像也会收到用户喜欢的图像。这怎么可能

这是我的持票人代码:

public class MyAdapter extends ArrayAdapter<MyModel> {

Context context;
int layoutResourceId;
List<MyModel> data = null;

public MyAdapter(Context context, int layoutResourceId,
        List<MyModel> data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View row = convertView;
    final BlockHolder holder;

    if (row == null) {
        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);
        holder = new BlockHolder();

        holder.imgIcon = (ImageView) row.findViewById(R.id.imgIcon);
        holder.totalVotes = (TextView) row.findViewById(R.id.totalVotes);
        holder.likeIcon = (ImageView) row.findViewById(R.id.likeIcon);
        holder.dislikeIcon = (ImageView) row.findViewById(R.id.dislikeIcon);
        holder.saveIcon = (ImageView) row.findViewById(R.id.saveIcon);

        row.setTag(holder);
    } else {
        holder = (BlockHolder) row.getTag();
    }

    MyModel myBlock = data.get(position);

    ImageLoader.getInstance().displayImage(myBlock.getImage(),
            holder.imgIcon);

    final int totalLikes = myBlock.getLikes() - myBlock.getDislikes();

    holder.totalVotes.setText(totalLikes + " likes");
    final ImageView like = holder.likeIcon;

    holder.likeIcon.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // ALSO UPDATES OTHER VIEWS...
            holder.likeIcon.setBackgroundResource(R.drawable.thumbs_up_mouse);
        }

    });

    return row;
}

private static class BlockHolder{
    ImageView imgIcon;
    TextView totalVotes;
    ImageView dislikeIcon;
    ImageView likeIcon;
    ImageView saveIcon;
}
公共类MyAdapter扩展了ArrayAdapter{
语境;
国际布局资源;
列表数据=null;
公共MyAdapter(上下文上下文,int-layoutResourceId,
列表数据){
超级(上下文、布局资源ID、数据);
this.layoutResourceId=layoutResourceId;
this.context=上下文;
这个数据=数据;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图行=转换视图;
最终区块持有人;
if(行==null){
LayoutInflater充气器=((活动)上下文)。getLayoutInflater();
行=充气机。充气(layoutResourceId,父级,false);
支架=新的区块支架();
holder.imgIcon=(ImageView)row.findViewById(R.id.imgIcon);
holder.totalvoces=(TextView)row.findViewById(R.id.totalvoces);
holder.likeIcon=(ImageView)row.findViewById(R.id.likeIcon);
holder.dislikeIcon=(ImageView)row.findViewById(R.id.dislikeIcon);
holder.saveIcon=(ImageView)row.findViewById(R.id.saveIcon);
row.setTag(支架);
}否则{
holder=(BlockHolder)行。getTag();
}
MyModel myBlock=data.get(位置);
ImageLoader.getInstance().displayImage(myBlock.getImage(),
持有人(imgIcon);
final int totalikes=myBlock.getLikes()-myBlock.getDislikes();
holder.totalvoces.setText(totalikes+“likes”);
最终图像视图like=holder.likeIcon;
holder.likeIcon.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//还将更新其他视图。。。
holder.likeIcon.setBackgroundResource(R.drawable.thumbs\u up\u鼠标);
}
});
返回行;
}
私有静态类区块持有人{
ImageView imgIcon;
文本视图全票;
图像视图不喜欢;
ImageView-likeIcon;
图像视图保存图标;
}

中使用onClick
((ImageView)v).setBackgroundResource(R.drawable.thumbs\u mouse);
而不是
holder.likeIcon.setBackgroundResource(R.drawable.thumbs\u mouse);
仍然存在同样的问题