android activity调用Adapter方法刷新列表UI,RecyclerView.Adapter

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

 

 

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/415763.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vuex 对象嵌套属性的修改 mutations set 很方便的写法

需求&#xff1a;一个对象 const state {user: {verify: {state: 0}} }我需要使用类似this.set({ user.verify.state: 1 })这种写法直接获取或修改state[user.verify.state]的值。不知道别人怎么写的&#xff0c;我的写法如下&#xff1a; const mutations {set(state, par…

eclipse/myeclipse中快捷键 Ctrl+shift+down/up 出现屏幕颠倒的解决方法

1.原因&#xff1a;快捷键被占用 2.解决 如果是被其它软件占用&#xff0c;则修改其它软件的快捷键。 查看快捷键是否被占用工具&#xff1a;http://download.csdn.net/download/muyeju/9999443    如果是Integer占用&#xff0c;则禁用快捷键&#xff0c;桌面右击->图形选…

android 获取图片主色调

在build.gradle添加依赖 compile com.github.florent37:glidepalette:1.0.6 使用 TextView tvColor(TextView) findViewById(R.id.testte); ImageView imageView (ImageView)findViewById(R.id.testimage); tvColor.setText(style); ImageManager.loadAndPalette(MainActivity…

基于B/S架构的故障模型

基于B/S架构的故障模型 基于&#xff22;/&#xff33;架构的软件进行的测试&#xff0c;主要进行的有功能测试、性能测试、安全性测试、配置和兼容性测试、可用性测试、安装部署测试、用户手册、在线帮助测试等。下列分别介绍这些测试的内容。 &#xff11;、 功能…

mongoose 更新元素 DeprecationWarning: collection.update is deprecated. Use updateOne, updateMany

我一开始的写法: const updOne await this.update({ _id: verify_id }, {$set: {// 认证通过&#xff0c;状态设置为1state: 1,// 审核操作人verify_user,verify_at: Date.now()} });使用mongoose更新元素值&#xff0c;报错了DeprecationWarning: collection.update is depr…

mongodb $unwind 聚合管道

$unwind&#xff1a;将文档中的某一个数组类型字段拆分成多条&#xff0c;每条包含数组中的一个值。 需求&#xff1a; {"_id" : ObjectId("5951c5de567ebff0d5011fba"),"name" : "陈晓婵","address" : "北京朝阳区&q…

QC无法启动,实战记录

今天上午QC还用得好好的&#xff0c;下午就突然打不开了&#xff0c;急了&#xff0c;服务重启了一遍还是不行。最后将错误信息截下来&#xff0c;仔细研究&#xff0c;同时也要感谢测试群的朋友们的帮忙&#xff0c;终于找到了一些方向。 下面把错误信息贴出来&#xff1a; …

android butterknife使用详解

添加依赖 compile com.jakewharton:butterknife:8.6.0 annotationProcessor com.jakewharton:butterknife-compiler:8.6.0 //下载最新黄油刀 implementation com.jakewharton:butterknife:10.2.0 annotationProcessor com.jakewharton:butterknife-compiler:10.2.0 …

工作108:swiper使用

<!--首页管理--> <template><div><el-card><h1>等待处理</h1><div style"width: 100%;height: 200px"><swiper ref"mySwiper" ><swiper-slide v-for"(item,index) in task"><el-butt…

背景图片生成网站收集

https://pissang.github.io/little-big-city/ 生成星球 https://alteredqualia.com/ 很多效果 http://www.decrooks.com/ 毛线球生成器

python入门-分类和回归各种初级算法

引自&#xff1a;http://www.cnblogs.com/taichu/p/5251332.html ########################### #说明&#xff1a; # 撰写本文的原因是&#xff0c;笔者在研究博文“http://python.jobbole.com/83563/”中发现 # 原内容有少量笔误&#xff0c;并且对入门学友缺少一些…

Git Bash下载安装,git命令下载项目,上传android项目到github步骤,以及取消项目关联Git,设置git忽略文件

设置忽略文件 1、工程下创建文件夹gitignore。push即可 *.iml .gradle /local.properties /.idea/caches /.idea/libraries /.idea/modules.xml /.idea/workspace.xml /.idea/navEditor.xml /.idea/assetWizardSettings.xml .DS_Store /build /captures .externalNativeBuild …

软件测试是找BUG,不是找茬

做测试久了&#xff0c;经常会有一些感悟&#xff0c;最近在51上看到一贴&#xff0c;说出了我的心声&#xff0c;把我一直想写却一直以时间为借口为由拖着未写的心声写出来&#xff0c;摘抄了部分过不&#xff0c;一起纪念测试的年代&#xff0c;测试的心声。测试好象一直会被…

比较精确的js倒计时实现

// 传入需要倒计时的秒数countDown(times) {// 时间间隔 1秒const interval 1000;// 计算时间&#xff0c;转化为毫秒let ms times * 1000;let count 0;const startTime new Date().getTime();const endTime startTime ms;let timeCounter;timeCounter setTimeout(count…

java 如何让循环结束,跳过某个条件,跳出当前的多重嵌套循环

当数据比较庞大的时候&#xff0c;需要循环遍历某个数据的时候可用 for (int ab 0;ab<10000;ab){if (ab 7){//当找到7的时候&#xff0c;结束循环Log.v("map","..ab 7....11......"ab);break;}else {Log.v("map","......11..else....&qu…

服务器虚拟化之-——VMware组件与功能。

最近公司提出帮服务器虚拟化&#xff0c;以前也没接触过&#xff0c;在网上搜了一通&#xff0c;查看了一少资料&#xff0c;感觉现在对虚拟化有了一些了解&#xff0c;在售前我们要出方案&#xff0c;需要对虚拟化进行一个整体评估&#xff0c;这步先省略&#xff0c;后期再补…