recyclerview单选和保留选中

2017-02-24  本文已影响0人  人生刚开始

直接上源码吧自己看
这里是通过创建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);

        }

    }
上一篇 下一篇

猜你喜欢

热点阅读