gpt4 book ai didi

android - ViewHolder ImageView setVisibility 重复

转载 作者:太空宇宙 更新时间:2023-11-03 13:20:24 25 4
gpt4 key购买 nike

我有一个带有 ViewHolder 模式的适配器。它有一个 TextView 和一个 ImageView。我必须对适配器中的数据库进行一些检查以显示 ImageView 或不显示。问题是将可见性设置为 View.VISIBLE 也设置为其他位置的其他 ImageView。我确定我的数据库不包含与那些 ImageView 相关的数据,而只包含正确设置的数据。

这是我的代码(我删除了 textview 集合的一部分,因为它运行良好):

public class ChaptersAdapter extends ArrayAdapter<List> {
private final Context context;
private final ArrayList<List> list;
ViewHolder viewHolder;
DatabaseHandler dh;
SQLiteDatabase db;
ArrayList<BookmarksHandler> bookmarksAL;

public ChaptersAdapter(Context context, ArrayList<List> list) {
super(context, R.layout.chaptersadapter, list);

this.context = context;
this.list = list;
}

static class ViewHolder{
TextView titolo;
ImageView imageView;
}

@Override
public View getView(int position, View rowView, ViewGroup parent) {
dh = new DatabaseHandler(context);
db = dh.getWritableDatabase();
bookmarksAL = dh.getAllBookmarks(db);

List chapters = getItem(position);

if(rowView==null){
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
rowView = inflater.inflate(R.layout.chaptersadapter, parent, false);

viewHolder = new ViewHolder();

viewHolder.titolo = (TextView) rowView.findViewById(R.id.textView);
viewHolder.imageView = (ImageView) rowView.findViewById(R.id.imageView);

rowView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder) rowView.getTag();
}

for(int i = 0; i<bookmarksAL.size(); i++){
if(bookmarksAL.get(i).getId_chapter().equals((String)chapters.get(3))){
viewHolder.imageView.setVisibility(View.VISIBLE);
}
}


return rowView;
}
}

这是我的意思的屏幕: screen viewholder

只需要添加带圆圈的imageview,不需要添加上面带X的。如果我向下滚动 ListView ,查看器将可见性设置为对不在我的数据库中的其他 ImageView 也是可见的。

最佳答案

由于其回收机制,这是 ListView 的正常行为。如果不满足条件,则重置 ImageView 的可见性

for(int i = 0; i<bookmarksAL.size(); i++){            
if(bookmarksAL.get(i).getId_chapter().equals((String)chapters.get(3))) {
viewHolder.imageView.setVisibility(View.VISIBLE);
break;
} else {
viewHolder.imageView.setVisibility(View.GONE);
}
}

关于android - ViewHolder ImageView setVisibility 重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29062900/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com