不用遍历实现单选的另类写法
记录上一次的单击位置
public class SendLocationAdapter extends BaseQuickAdapter<NoticeList, BaseViewHolder> {private int lastPosition = -1;private TextView lastTv;public SendLocationAdapter(int layoutResId, @Nullable List<NoticeList> data) {super(layoutResId, data);}@Overrideprotected void convert(BaseViewHolder helper, NoticeList item) {final TextView tv_send_location = helper.getView(R.id.tv_send_location);helper.setText(R.id.tv_send_location, item.Content);final int position = helper.getLayoutPosition();setSelected(lastPosition == position, tv_send_location);tv_send_location.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (lastPosition != position) {setSelected(false, lastTv);setSelected(true, tv_send_location);lastPosition = position;}}});}private void setSelected(boolean isSelected, TextView tv) {if (tv != null) {tv.setTextColor(ContextCompat.getColor(mContext, isSelected ? R.color.colorText : R.color.colorTextDarkerGray));tv.setCompoundDrawablesWithIntrinsicBounds(isSelected ? R.drawable.ic_location_red_20dp : R.drawable.ic_location_gray_20dp,0, isSelected ? R.drawable.icon_image_select : R.drawable.icon_image_un_select, 0);if (isSelected) {lastTv = tv;}}}
}