如何在RecyclerView中选择和取消选择项目?如何仅在回收者视图中突出显示所选项目?

2023-11-23

@Override
    public void onBindViewHolder(final mainscreenspecializationadap.MyViewHolder holder, final int positionz) {
        this.position = holder.getAdapterPosition();
        final specializationpojo album = albumList.get(holder.getAdapterPosition());
        holder.txtspecs.setText(album.getSplztnname());
        holder.imgspecs.setImageResource(album.getIcon());

    holder.linelayout.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            row_index=positionz;
            album.setOpened(!album.isOpened());
            notifyDataSetChanged();

        }
    });
    if(positionz==row_index){
        holder.imageView.setBackground(mContext.getResources().getDrawable(R.drawable.white_circle_background));
        holder.txtspecs.setSelected(true);
        if (type==1)
        {
            onClick.onSelected(row_index,album.isOpened(),album.isClosed());
        }
        else if(type==2)
        {   onClick.onSpecialisationSelected(album.getSplzcode(),album.getCount());
        }
    }
    else
    {
        holder.txtspecs.setSelected(false);
        holder.imageView.setBackground(mContext.getResources().getDrawable(R.drawable.green_background));
    }

}
  1. 我有一个回收器视图,我只需要选择一个项目,因此在此基础上,我必须显示一个子列表项目。

  2. 现在的问题是,当我取消选择该项目时,下面的子列表项目应该被隐藏。

  3. 请建议我一个答案,我将不胜感激。


这是满足您要求的解决方案

    public class AdapterClass extends RecyclerView.Adapter<AdapterClass.ViewHolder> {
        private int selected_position = -1;

        @Override
        public void onBindViewHolder(AdapterClass.ViewHolder holder, final int position) {
            if (selected_position == position) {
                // do your stuff here like
                //Change selected item background color and Show sub item views

            } else {
                  // do your stuff here like
                  //Change  unselected item background color and Hide sub item views
            }
  // rest of the code here

    holder.linelayout.setOnClickListener(new View.OnClickListener() {
          @Override
          public void onClick(View view) {
              if(selected_position==position){
                        selected_position=-1;
                        notifyDataSetChanged();
                        return;
                    }
                    selected_position = position;
                    notifyDataSetChanged();

            }
        });

    //rest of the code here

     }


}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在RecyclerView中选择和取消选择项目?如何仅在回收者视图中突出显示所选项目? 的相关文章

随机推荐