AndroidRecyclerView单击选择多个行
创始人
2024-10-09 17:32:18
0

在实现单击选择行的RecyclerView中,这种问题可能会出现,其中用户只需要单击一行,但多个行被选中。这是由于RecyclerView重复使用行视图而不重置勾选框的状态所导致的。

因此,修复此问题的解决方案是为RecyclerView中的每一行设置单独的点击监听器,并在单击事件中更新选中状态。同时,在onBindViewHolder方法中,重置单选框的状态以确保每个ViewHolder都始终具有正确的状态。

以下是示例代码:

public class MyAdapter extends RecyclerView.Adapter {
    private List mDataList;

    public MyAdapter(List dataList) {
        this.mDataList = dataList;
    }

    @Override
    public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.my_row_layout, parent, false);
        return new ViewHolder(view);
    }

    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        MyData myData = mDataList.get(position);

        holder.mTitleTextView.setText(myData.getTitle());

        // Reset the checkbox state to ensure correct state
        holder.mCheckBox.setChecked(false);
    }

    @Override
    public int getItemCount() {
        return mDataList.size();
    }

    public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
        TextView mTitleTextView;
        CheckBox mCheckBox;

        public ViewHolder(View itemView) {
            super(itemView);

            mTitleTextView = itemView.findViewById(R.id.title_text);
            mCheckBox = itemView.findViewById(R.id.checkbox);

            // Set a click listener for the row item
            itemView.setOnClickListener(this);
        }

        @Override
        public void onClick(View view) {
            int position = getAdapterPosition();

            // Update the checkbox state
            mCheckBox.setChecked(!mCheckBox.isChecked());

            // Update the data item with the new state
            MyData myData = mDataList.get(position);
            myData.setSelected(mCheckBox.isChecked());
        }
    }
}

相关内容

热门资讯

透视玄学!wepoker可以开... 透视玄学!wepoker可以开透视吗(透视)其实是真的有挂(详细辅助规律教程)软件透明挂微扑克wpk...
透视软件!淘宝买wepoker... 透视软件!淘宝买wepoker透视有用吗(透视)本来真的是有挂(详细辅助专业教程);暗藏猫腻,小编详...
透视玄学!hh poker软件... 透视玄学!hh poker软件(透视)真是真的是有挂(详细辅助实用技巧);1、系统规律教程、辅助透视...
透视科技!大菠萝789辅助器下... 透视科技!大菠萝789辅助器下载(透视)一贯存在有挂(详细辅助安装教程)1、玩家可以在软件透明挂俱乐...
透视工具!pokerrrr2辅... 透视工具!pokerrrr2辅助(透视)原来真的是有挂(详细辅助力荐教程)1、不需要AI权限,帮助你...
透视脚本!pokemmo手机版... 透视脚本!pokemmo手机版脚本免费(透视)果然存在有挂(详细辅助线上教程);1、系统规律教程、辅...
透视教学!wpk俱乐部辅助器(... 透视教学!wpk俱乐部辅助器(透视)切实真的有挂(详细辅助黑科技教程);1、该软件可以轻松地帮助玩家...
透视辅助!wepoker透视有... 透视辅助!wepoker透视有没有(透视)其实真的有挂(详细辅助新版2025教程)亲,关键说明,we...
透视总结!哈糖大菠萝有挂吗(透... 透视总结!哈糖大菠萝有挂吗(透视)切实是真的有挂(详细辅助细节方法)辅助器中分为三种模型:软件透明挂...
辅助透视!wpk私人辅助(透视... 辅助透视!wpk私人辅助(透视)切实是有挂(详细辅助切实教程)1、系统规律教程、辅助透视等服务,为用...