直接上源碼吧自己看
這里是通過創(chuàng)建adapter的時(shí)候傳進(jìn)來的int數(shù)值來判斷當(dāng)前選中的是哪一個(gè)
publicRadioAdapter(Contextcontext,Listitems,intsign_type){
mContext=context;
mItems=items;
if(sign_type== -1){
mSelectedItem=mItems.get(mItems.size()-1).getSignType();
}else{
mSelectedItem=sign_type;
}
}
這里主要是做了一個(gè)反選的操作,因?yàn)樽龅膯芜x的,當(dāng)點(diǎn)擊一個(gè)其他的要進(jìn)行反選
public void onBindViewHolder(RadioAdapter.ViewHolder viewHolder, final int i) {
if (mItems.get(i).getSignType() == mSelectedItem) {
viewHolder.mRadio.setChecked(true);
} else {
viewHolder.mRadio.setChecked(false);
}
}
這里面是執(zhí)行的點(diǎn)擊和刷新數(shù)據(jù)的一個(gè)操作,當(dāng)點(diǎn)擊的時(shí)候獲取當(dāng)前的position,然后進(jìn)行數(shù)據(jù)刷新
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);
}
}