Java Android viewholder onclick更新更多实例
对于我的android应用程序,我使用的是ViewHolder模式。 每当我在listview中单击imageview时,该行就会更新,但其他行也会更新 每当我点击“喜欢”按钮时,其他图像也会收到用户喜欢的图像。这怎么可能 这是我的持票人代码: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 =
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);
仍然存在同样的问题