在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;
}
@Override
public 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;
}
@Override
public 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() {
@Override
public void onClick(View v) {
int position = holder.getLayoutPosition(); // 1
mOnItemClickListener.onItemClick(holder.itemView, position); // 2
}
});
}
}
@Override
public 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() {
@Override
public 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<>();
}
@Override
public 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() {
@Override
public void onClick(View v) {
if (mOnItemClickListener != null
&& commonHolder.getAdapterPosition() != RecyclerView.NO_POSITION) {
mOnItemClickListener.onItemClick(parent, commonHolder,
commonHolder.getAdapterPosition());
}
}
});
view.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public 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) {
// 默认空实现
}
@Override
public 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;
@Override
public int getItemLayoutId(int viewType) {
return R.layout.item_shebei;
}
public ShebeilistAdapter(Context context) {
this.mContext = context;
}
@Override
public 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() { @Override public void onItemChildClick(BaseQuickAdapter adapter, View view, int position) { switch (view.getId()) { case R.id.ll_cb_collectjb: Log.e("lgqhttp","举报。。。。"); break;