我有一个Listview,它位于CustomAdapter中,我有ListView可点击,所以当用户点击一行时,旁边会出现一个小复选标记。我的问题是,如果你向下滚动ListView然后再回来CheckMark消失或它忘记了点击的项目。这是图像
正如您所看到的,当单击某个项目时图像会正确显示,但如果向下滚动则再向上,图像就会消失。这就是我在ListView中的内容
@Override
public View getView(int position,View convertView,ViewGroup parent) {
final ViewHolder holder;
if(convertView==null){
holder = new ViewHolder();
inflater = (LayoutInflater) c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.from(c).inflate(R.layout.mylists, null);
// Initialize
holder.textView=(TextView) convertView.findViewById(R.id.textView);
binding.list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view,int position, long l) {
holder.selected_genres = (ImageView) view.findViewById(R.id.selected_genre);
holder.selected_genres.setVisibility(View.VISIBLE);
}
});
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
lists= mylist.toArray(new String[0]);
holder.text1.setText(lists[position]);
return convertView;
}
答案 0 :(得分:1)
您需要跟踪哪些是&#34;已选择&#34;物品..
这个问题有很多可能的解决方案,一个是创建一个以所有falses开头的列表(与项目列表大小相同),当你选择某个位置的项目时(在onItemClick内),设置该位置的值为true ..然后在创建视图时(在getView内),检查该值并显示(或不显示)复选标记。