不用遍历实现单选的另类写法

2023-09-23 27 0

 

不用遍历实现单选的另类写法

记录上一次的单击位置

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;}}}
}

 

代码编程
赞赏

相关文章

Google以21亿美元的价格收购了健康追踪器Fitbit
增长模型拆解:分享有礼裂变玩法的底层逻辑与细节设计
怎么做好B端数据运营?
基于两个实际案例,分享自己2020年运营的一些心得
数字化营销时代:企业如何从“推时代”进阶“拉时代”
谷歌三星杀进来了,高通为啥一点不怕?