在adapter中创建被调用方法cleckAll
public class JYfkleixinAdapter extends RecyclerView.Adapter<JYfkleixinAdapter.ViewHolder> {private Context context;private OnItemClickListener mOnItemClickListener;private List<JyfkEntity> entityList;public JYfkleixinAdapter(Context context, List<JyfkEntity> entities) {this.context = context;this.entityList = entities;}@Overridepublic JYfkleixinAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_jyfk, null);JYfkleixinAdapter.ViewHolder holder = new JYfkleixinAdapter.ViewHolder(view);return holder;}@Overridepublic void onBindViewHolder(final JYfkleixinAdapter.ViewHolder holder, int position) {JyfkEntity entity = entityList.get(position);// ImageManager.loadBitmap(context, entity.getBimage(), R.mipmap.itemx_03, holder.item_intnb_image);try{holder.jyfkte.setText(entity.getName());//网吧名称if (entity.isIfselect()){holder.jyfkimage.setSelected(true);}else {holder.jyfkimage.setSelected(false);}}catch(Exception e){e.printStackTrace();}//判断是否设置了监听器if (mOnItemClickListener != null) {//为ItemView设置监听器-holder.itemView.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {int position = holder.getLayoutPosition(); // 1mOnItemClickListener.onItemClick(holder.itemView, position); // 2}});}}@Overridepublic int getItemCount() {return entityList.size();}public class ViewHolder extends RecyclerView.ViewHolder {@BindView(R.id.jyfkte)TextView jyfkte;@BindView(R.id.jyfkimage)ImageView jyfkimage;public ViewHolder(View itemView) {super(itemView);ButterKnife.bind(this, itemView);}}public interface OnItemClickListener {void onItemClick(View view, int position);}public void setOnItemClickListener(OnItemClickListener onItemClickListener) {this.mOnItemClickListener = onItemClickListener;}// 删除 打勾 全选public void cleckAll(int is_checked) { //全选 删除多少那里要删除全部for (int a = 0;a<entityList.size();a++){if (is_checked==a){entityList.get(a).setIfselect(true);}else {entityList.get(a).setIfselect(false);}}notifyDataSetChanged();}}
在activity中调用刷新UI
public void initrecyclerview(){barAdapter = new JYfkleixinAdapter(JYfkActivity.this,barEntityList);barAdapter.setOnItemClickListener(new JYfkleixinAdapter.OnItemClickListener() {@Overridepublic void onItemClick(View view, int position) {barAdapter.cleckAll(position);jylx = barEntityList.get(position).getName();}});jyfkrecyclerview.setLayoutManager(new LinearLayoutManager(JYfkActivity.this));jyfkrecyclerview.setAdapter(barAdapter);jyfkrecyclerview.setNestedScrollingEnabled(false);//禁止滑动jyfkrecyclerview.setFocusable(false);//导航栏切换不再focuse
}
adpter工具类
public abstract class BaseRecyclerAdapter<T>extends RecyclerView.Adapter<BaseRecyclerAdapter.CommonHolder> {private BaseRecyclerAdapter.OnItemClickListener mOnItemClickListener;private BaseRecyclerAdapter.OnItemLongClickListener mOnItemLongClickListener;public interface OnItemClickListener {void onItemClick(ViewGroup parent,BaseRecyclerAdapter.CommonHolder holder, int position);}public interface OnItemLongClickListener {boolean onItemLongClick(ViewGroup parent,BaseRecyclerAdapter.CommonHolder holder, int position);}protected final ArrayList<T> mData;public BaseRecyclerAdapter() {mData = new ArrayList<>();}@Overridepublic BaseRecyclerAdapter.CommonHolder onCreateViewHolder(final ViewGroup parent, int viewType) {final BaseRecyclerAdapter.CommonHolder commonHolder = createCommonHolder(parent, viewType);View view = commonHolder.itemView;setChildViewListener(commonHolder, viewType);view.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {if (mOnItemClickListener != null&& commonHolder.getAdapterPosition() != RecyclerView.NO_POSITION) {mOnItemClickListener.onItemClick(parent, commonHolder,commonHolder.getAdapterPosition());}}});view.setOnLongClickListener(new View.OnLongClickListener() {@Overridepublic boolean onLongClick(View v) {if (mOnItemLongClickListener != null&& commonHolder.getAdapterPosition() != RecyclerView.NO_POSITION) {return mOnItemLongClickListener.onItemLongClick(parent, commonHolder,commonHolder.getAdapterPosition());} else {return false;}}});return commonHolder;}/*** 创建通用Holder,子类可以重写这个方法** @param parent* @param viewType* @return*/public BaseRecyclerAdapter.CommonHolder createCommonHolder(ViewGroup parent, int viewType) {View view = LayoutInflater.from(parent.getContext()).inflate(getItemLayoutId(viewType), parent, false);return new BaseRecyclerAdapter.CommonHolder(view);}/*** 设置子控件的监听事件,可以通过{@link RecyclerView.ViewHolder#getAdapterPosition()}拿到item的位置** @param holder*/public void setChildViewListener(BaseRecyclerAdapter.CommonHolder holder, int viewType) {// 默认空实现}@Overridepublic int getItemCount() {return mData.size();}public List<T> getData() {return mData;}/*** 获取item布局** @return*/public abstract int getItemLayoutId(int viewType);/*** 删除数据** @param position*/public void delete(int position) {mData.remove(position);notifyDataSetChanged();}/*** 获取item** @param position* @return*/public T getItem(int position) {return mData.get(position);}/*** 设置新数据** @param data*/public void setNewData(List<? extends T> data) {mData.clear();if (data != null) {mData.addAll(data);}notifyDataSetChanged();}/*** 追加数据** @param data*/public void appendData(List<? extends T> data) {if (data != null && data.size() > 0) {mData.addAll(data);notifyDataSetChanged();}}/*** 添加单个数据** @param data*/public void addData(T data) {if (data != null) {mData.add(data);notifyDataSetChanged();}}/*** 设置点击事件** @param onItemClickListener*/public void setOnItemClickListener(BaseRecyclerAdapter.OnItemClickListener onItemClickListener) {mOnItemClickListener = onItemClickListener;}/*** 设置长按事件** @param onItemLongClickListener*/public void setOnItemLongClickListener(BaseRecyclerAdapter.OnItemLongClickListener onItemLongClickListener) {mOnItemLongClickListener = onItemLongClickListener;}public static class CommonHolder extends RecyclerView.ViewHolder {private SparseArray<View> mViews;public CommonHolder(View itemView) {super(itemView);mViews = new SparseArray<>();}public Context getContext() {return itemView.getContext();}public Resources getResource() {return itemView.getResources();}public <V extends View> V getView(int id) {View view = mViews.get(id);if (view == null) {view = itemView.findViewById(id);mViews.put(id, view);}return (V) view;}public void setText(int id, CharSequence text) {((TextView) getView(id)).setText(text);}public TextView getText(int id) {return getView(id);}public ImageView getImage(int id) {return getView(id);}}
}
实现方法
public class ShebeilistAdapter extends BaseRecyclerAdapter<String> {private Context mContext;private ClickListener mClickListener;@Overridepublic int getItemLayoutId(int viewType) {return R.layout.item_shebei;}public ShebeilistAdapter(Context context) {this.mContext = context;}@Overridepublic void onBindViewHolder(CommonHolder holder, final int position) {TextView pic = holder.getText(R.id.namete);pic.setText(getItem(position));LinearLayout linearLayout = holder.getView(R.id.bgli);
// if (position%2==0){
// linearLayout.setBackgroundColor(Color.parseColor ("#7Fe5e5e5"));
// }else {
// linearLayout.setBackgroundColor(Color.parseColor ("#ffffff"));
// }}public void setClickListener(ClickListener clickListener) {this.mClickListener = clickListener;}public interface ClickListener {void add(int position);void preview(int position);}}
调用方法
ShebeilistAdapter adapter;
adapter = new ShebeilistAdapter(this);
adapter.setNewData(list);
helper.setText(R.id.tx_username, item.getNickname()).setText(R.id.tx_time, NewsTimeChangeUtil.getTimeFormatText(new Date(item.getCtime() * 1000))).setText(R.id.tx_content, item.getContent()).setText(R.id.tx_discuss_num, item.getComment() + "").setText(R.id.cb_zan_num, item.getLikes() + "").addOnClickListener(R.id.cb_collect)
mAdapter.setOnItemChildClickListener(new BaseQuickAdapter.OnItemChildClickListener() {@Overridepublic void onItemChildClick(BaseQuickAdapter adapter, View view, int position) {switch (view.getId()) {case R.id.ll_cb_collectjb:Log.e("lgqhttp","举报。。。。");break;