1.单选
adapter中:
public class AddGuanXiAdapter extends RecyclerView.Adapter<AddGuanXiAdapter.MyViewHolder> {
private Context context;
private List<FamilyBean> list;
private int defItem = -1;//默认值
private OnItemListener onItemListener;
public AddGuanXiAdapter(Context context, List<FamilyBean> list) {
this.context = context;
this.list = list;
}
public void setOnItemListener(OnItemListener onItemListener) {
this.onItemListener = onItemListener;
}
public interface OnItemListener {
void onClick(View v, int pos, String projectc);
}
public void setDefSelect(int position) {
this.defItem = position;
notifyDataSetChanged();
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
context).inflate(R.layout.add_qinqing_item, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
holder.tv.setText(list.get(position).getNickName());
if (defItem != -1) {
if (defItem == position) {
holder.tv.setTextColor(Color.parseColor("#ffffff"));
holder.tv.setBackgroundResource(R.drawable.price_queren_shape);
} else {
holder.tv.setTextColor(Color.parseColor("#4c4c4c"));
holder.tv.setBackgroundResource(R.drawable.fef1f1_shape);
}
}
}
@Override
public int getItemCount() {
return list.size();
}
/**
* ViewHolder的类,用于缓存控件
*/
class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv;
public MyViewHolder(View view) {
super(view);
tv = (TextView) view.findViewById(R.id.tv_guanxi);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemListener != null) {
onItemListener.onClick(v, getLayoutPosition(), list.get(getLayoutPosition()).getNickName());
}
}
});
}
}
}
activity中调用:
adapter.setOnItemListener(new AddGuanXiAdapter.OnItemListener() {
@Override
public void onClick(View v, int pos, String projectc) {
adapter.setDefSelect(pos);
relationship = list.get(pos).getNickName();
}
});
2.多选
adapter中这个是在adapter中直接设置控件的点击事件:
public class FangWuZDLBAdapter extends RecyclerView.Adapter<FangWuZDLBAdapter.MyViewHolder> {
private Context context;
private List<FangWuZDLBBean.ItemsBean> list;
private OnItemListener onItemListener;
public static HashMap<Integer, Boolean> isSelected;
public FangWuZDLBAdapter(Context context, List<FangWuZDLBBean.ItemsBean> items) {
this.context = context;
this.list = items;
init();
}
// 初始化 设置所有item都为未选择
public void init() {
isSelected = new HashMap<Integer, Boolean>();
for (int i = 0; i < list.size(); i++) {
isSelected.put(i, false);
}
}
public interface OnItemListener {
void onClick(View v, int pos, String projectc);
}
public void setOnItemListener(OnItemListener onItemListener) {
this.onItemListener = onItemListener;
}
@NonNull
@Override
public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
MyViewHolder holder = new MyViewHolder(LayoutInflater.from(
context).inflate(R.layout.fw_zhangdan_item, parent,
false));
return holder;
}
@Override
public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
//CheckBox点击事件
holder.mCheckBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (!isSelected.get(position)) {
isSelected.put(position, true);
notifyItemChanged(position);
EventBus.getDefault().post(new SelectEventX("1", position + ""));
} else {
isSelected.put(position, false);
notifyItemChanged(position);
EventBus.getDefault().post(new SelectEventX("2", position + ""));
}
}
});
holder.mCheckBox.setChecked(isSelected.get(position));
}
@Override
public int getItemCount() {
return list.size();
}
/**
* ViewHolder的类,用于缓存控件
*/
class MyViewHolder extends RecyclerView.ViewHolder {
TextView tv_num, tv_yehzu, tv_wuye_fei, tv_jinqian;
CheckBox mCheckBox;
public MyViewHolder(View view) {
super(view);
tv_num = view.findViewById(R.id.tv_num);
tv_yehzu = view.findViewById(R.id.tv_yehzu);
tv_wuye_fei = view.findViewById(R.id.tv_wuye_fei);
tv_jinqian = view.findViewById(R.id.tv_jinqian);
mCheckBox = view.findViewById(R.id.checkbox);
itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onItemListener != null) {
onItemListener.onClick(v, getLayoutPosition(), list.get(getLayoutPosition()).getBname());
}
}
});
}
}
}
CheckBox的布局文件:
<CheckBox
android:id="@+id/checkbox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="false"
android:layout_marginLeft="@dimen/dp_10"
android:button="@drawable/checkbox_style"
android:focusable="false"
android:focusableInTouchMode="false"/>
checkbox_style布局文件
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/protocol_sel1" android:state_checked="true"/>
<item android:drawable="@drawable/protocol_unsel1" android:state_checked="false"/>
<item android:drawable="@drawable/protocol_unsel1"/>
</selector>
973

被折叠的 条评论
为什么被折叠?



