2016-09-19 79 views
0

我有一个ListView是在CustomAdapter中,我有ListView可点击,所以当用户单击一行时,它旁边会出现一个小小的复选标记。我的问题是,如果你向下滚动ListView然后回来,CheckMark会消失,或者忘记点击哪个项目。这是图像 enter image description hereAndroid ListView保存项onClick在适配器

正如你所看到的图像正确显示,当一个项目被点击,但如果你向下滚动然后再一次图像消失。这是我在我的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

你需要跟踪哪些是“选择”的项目..

有很多的问题可能的解决方案,一个是创建一个列表(与项目列表大小相同)以所有错误开始,并且当您在某个位置(在onItemClick内)选择一个项目时,将该位置的值设置为true ..然后当您创建视图时(在getView ),检查该值并显示(或不)复选标记。