【问题标题】:Android ListView save items onClick in adapterAndroid ListView 在适配器中保存项目 onClick
【发布时间】:2016-09-19 15:05:43
【问题描述】:

我有一个位于 CustomAdapter 中的列表视图,我有可单击的列表视图,因此当用户单击一行时,它旁边会出现一个小复选标记。我的问题是,如果您向下滚动 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;
    }

【问题讨论】:

  • 用所有被覆盖的方法发布整个适配器文件。

标签: android listview android-adapter


【解决方案1】:

您需要跟踪哪些是“选定”项目..

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

【讨论】:

    猜你喜欢
    • 2013-09-07
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    • 2014-02-13
    • 2013-09-13
    相关资源
    最近更新 更多