android - 单击列表中某个位置的一个 View 和不同位置自动工作的其他 View ?

标签 android android-listview onitemclicklistener

我在带有基本适配器的列表中使用自定义复选框。
问题是,当我点击一个未选中的复选框时,另一个复选框会自动被取消选中。
假设我在第 0 个位置单击一个复选框,然后另一个第 5 个位置的复选框将自动取消选中。

          public View getView( int position, View convertView, ViewGroup parent) {
    final  ViewHolder  holder = new ViewHolder();
    if (convertView == null) {

        convertView = mInflater.inflate(R.layout.socket_layer, null);
    }
        holder.checkBox = (ImageView) convertView.findViewById(R.id.checkBox_SocketFilter);
        holder.filter_name=(TextView)convertView.findViewById(R.id.filter_name);

        holder.filter_name.setText(rowItems.get(position));
      holder.checkBox.setTag(position);
           holder.onoff.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
         int position = (Integer) v.getTag();
             if(!selectedItems.get(position)){
                 selectedItems.put(position,true);    
                 if(PrefUtils.socketCheck[position].equals(true))
                 {
                         holder.onoff.setImageResource(R.drawable.offf);                         
                     PrefUtils.socketCheck[position]=false;                       
                     selectedItems.delete(position);


                     }
                   else if(PrefUtils.socketCheck[position].equals(false)){
                     holder.onoff.setImageResource(R.drawable.onnn);                  
                     PrefUtils.socketCheck[position]=true;                   
                     selectedItems.delete(position);
                 }
             }else{
             selectedItems.delete(position);
         }
         }
     });
        convertView.setTag(holder);
    }
    else {
        holder = (ViewHolder) convertView.getTag();
    }

请帮帮我。

最佳答案

像这样修改你的代码。

  1. 在设置点击监听之前,在onOff按钮中添加位置作为标签

    holder.onoff.setTag(position);

  2. 并且在 onClick()

    int position = (Integer) v.getTag();

然后在 onClick() 中使用这个位置变量进行操作。

关于android - 单击列表中某个位置的一个 View 和不同位置自动工作的其他 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34222848/

相关文章:

android - 带有线性直线进度条的 ListView

Android ListView 滚动到顶部时自动加载更多数据

android - Listview + BaseAdapter - 如何通知单个项目的变化?

android - 当按钮在列表中时,ListView 长按不起作用

Android Listview OnItemClickListener 有时无法正常工作

android - ListView 在屏幕方向更改时在列表中添加了重复项

android - 如何使 TextView 高度填满屏幕并将图像放置在 ListView 旁边

android - Recyclerview 滑动 + CardView 触摸

android - 如何知道何时通过清除按钮清除了我的通知?

android - 选择前置摄像头时,CameraX预览不显示任何内容