recyclerview单选和保留选中

直接上源码吧自己看
这里是通过创建adapter的时候传进来的int数值来判断当前选中的是哪一个

publicRadioAdapter(Contextcontext,Listitems,intsign_type){
mContext=context;
mItems=items;
if(sign_type== -1){
mSelectedItem=mItems.get(mItems.size()-1).getSignType();
}else{
mSelectedItem=sign_type;
}
}

这里主要是做了一个反选的操作,因为做的单选的,当点击一个其他的要进行反选

  public void onBindViewHolder(RadioAdapter.ViewHolder viewHolder, final int i) {
        if (mItems.get(i).getSignType() == mSelectedItem) {
            viewHolder.mRadio.setChecked(true);
        } else {
            viewHolder.mRadio.setChecked(false);
        }
    }

这里面是执行的点击和刷新数据的一个操作,当点击的时候获取当前的position,然后进行数据刷新

  class ViewHolder extends RecyclerView.ViewHolder {
        public RadioButton mRadio;
        public TextView mText;
        public ViewHolder(final View inflate) {
            super(inflate);
            mText = (TextView) inflate.findViewById(R.id.tv_autograph_text);
            mRadio = (RadioButton) inflate.findViewById(R.id.iv_zedang);
            View.OnClickListener clickListener = new View.OnClickListener() {

                @Override

                public void onClick(View v) {
                    mListener.onItemClickListener(v, getAdapterPosition());
                    mSelectedItem = mItems.get(getAdapterPosition()).getSignType();
                    notifyDataSetChanged();
                }

            };
            itemView.setOnClickListener(clickListener);
            mRadio.setOnClickListener(clickListener);

        }

    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容