android电脑文件列表不刷新,Android 利用RecyclerView.Adapter刷新列表中的单个view问题...

首先使用RecyclerView的adapter继承:RecyclerView.Adapter

public class OrderListAdapter extends RecyclerView.Adapter {

//TODO

}

2、创建ViewHolder 需要继承

class ViewHolder extends RecyclerView.ViewHolder{

//TODO 声明view

public ViewHolder(View convertView) {

super(convertView);

//TODO 初始化view

}

}

通过onCreateViewHolder 返回好创建的布局文件:

@Override

public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View inflate = LayoutInflater.from(mContext).inflate(R.layout.xxxx, parent, false);

return new ViewHolder(inflate);

}

接下来重点来了:

通过onBindViewHolder 带List payloads 参数的方法来区分是现实列表中的同一位置的view的刷新:

@Override

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position, List payloads) {

if (null == payloads || payloads.size() < 1) {

onBindViewHolder(holder, position);

} else if (mIsActivityTop) {

for (Object payload : payloads) {

// 刷新倒计时

if (payload instanceof Integer && ((int) payload) == UPDATE_COUNT_DOWN_TIME) {

((ViewHolder) holder).tv_time.setText("刷新了"));

}

}

}

}

传入的整型:

private final static int UPDATE_COUNT_DOWN_TIME = 1;

而payloads可以List,这样就可以区分刷新不同区域的view了.

而上面的调用的onBindViewHolder(holder, position),就是重写的onBindViewHolder(holder, position)的方法了:

@Override

public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {

//TODO 写绑定view 的逻辑以及显示

}

对于什么时候会调用到onBindViewHolder(holder, position, payloads)的方法:

当你写倒计时的时候:(倒计时是用rxjava写的,在onNext的时候)

Subscription adSkipTimer Observable.interval(1, TimeUnit.SECONDS)

.observeOn(AndroidSchedulers.mainThread())

.subscribe(new Subscriber() {

@Override

public void onCompleted() {

}

@Override

public void onError(Throwable e) {

}

@Override

public void onNext(Long aLong) {

notifyItemRangeChanged(0, getItemCount(), UPDATE_COUNT_DOWN_TIME);

}

}

});

通过 notifyItemRangeChanged 来调用onBindViewHolder(holder, position, payloads)的方法。

通过notifyDataSetChanged 来调用onBindViewHolder(holder, position)的方法。

Android利用RecyclerView实现列表倒计时效果

最近面试时,面试官问了一个列表倒计时效果如何实现,然后脑袋突然懵的了O(∩_∩)O,现在记录一下. 运行效果图 实现思路 实现方法主要有两个: 1.为每个开始倒计时的item启动一个定时器,再做更新i ...

android 开发 RecyclerView 横排列列表布局

1.写一个一竖的自定义布局: <?xml version="1.0" encoding="utf-8"?>

Android开发——RecyclerView实现下载列表

本篇记录的是使用Jsoup框架爬取网页内容,结合Android的RecyclerView,从而实现批量下载小说的功能(也是我的APP星之小说下载器Android版的核心功能),思路仅供参考 本文使用了 ...

&lbrack;Android&rsqb;ListView的Adapter&period;getView&lpar;&rpar;方法中延迟加载图片的优化

以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/4139998.html 举个例子吧,以好友列表为例 ListVi ...

android利用provider查询同一个数据库中没有对外暴露出来的表

[原创]转载请加本篇博客地址http://www.cnblogs.com/scarecrow-blog/p/6266042.html 个人感觉这是android provider 的一个漏洞, 废话少 ...

Android利用Looper在子线程中改变UI

MainActivity如下: package cn.testlooper; import android.app.Activity; import android.os.Bundle; import ...

android 利用反射机制获取drawable中所有的图片资源

public List> getGridData() { list=new ArrayList

Android 在滚动列表中实现视频的播放&lpar;ListView &amp&semi; RecyclerView&rpar;

这片文章基于开源项目: VideoPlayerManager. 所有的代码和示例都在那里.本文将跳过许多东西.因此如果你要真正理解它是如何工作的,最好下载源码,并结合源代码一起阅读本文.但是即便是没有 ...

在滚动列表中实现视频的播放&lpar;ListView &amp&semi; RecyclerView&rpar;

英文原文:Implementing video playback in a scrolled list (ListView & RecyclerView) 本文将讲解如何在列表中实现视频播放. ...

随机推荐

java 22 - 21 多线程之多线程的代码实现方式3

JDK5新增了一个Executors工厂类来产生线程池,有如下几个方法 A.public static ExecutorService newCachedThreadPool() B.public s ...

Spring--laobai1

1 spring的概念  (spring:ioc对象工厂+aop.) apache推出的java企业框架,提供了基于ioc的对象工厂.aop功能及其他增强功能. 2 控制反转(ioc):inversi ...

Java面向对象三大特点之封装

封装 含义:将对象的属性和行为封装起来,而将对象的属性和行为封装起来的载体是类,类通常对客户隐藏其实现细节,这就是封装的思想.封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的 ...

Unix时间戳&lpar;Unix timestamp&rpar;转换工具

http://tool.chinaz.com/Tools/unixtime.aspx 现在的Unix时间戳(Unix timestamp)是   1440732364         Unix时间戳( ...

HDU 5918 KMP&sol;模拟

Sequence I Time Limit: 3000/1500 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total ...

ADG打补丁

1 产品DG备库安装 16494615 补丁 主库停止向备库传输日志 alter system set log_archive_dest_state_2=defer; alter system set ...

精品手游《里奥的财富》高清版逆向移植家用机与PC平台(转)

冒险动作游戏于去年10月登陆移动平台,曾荣获App Store“年度优秀游戏”.开发商宣布将推出其HD版本,近期会陆续登陆PS4.PC.MAC.Xbox One平台. 由瑞典 ...

两个有序数组的第n大数

两个有序数组,各自含有n个元素,求第n大的元素 1.顺序遍历两个数组,计数变量k统计出现的第k小元素,时间复杂度为O(n) 代码例如以下: int getmid(int a[],int b[],int ...

lesson3&colon;使用java代码的方式对不能识别的协议进行压力测试

在我们的实际环境中,我们所使用的协议肯定不只是http的方式,对于rpc等调用协议,目前jmeter没有相应的sampler支持,这时就需要通过引入我们自己写的jar包的方式来解决这个问题.例如:当我 ...

MySQL服务相关

1.管理员身份运行cmd方法: 在C:\Windows\System32\cmd.exe右键以管理员身份运行 2.查看MySQL服务选项(路径:任务管理器-服务tab-选中任一服务点击打开服务-进入服 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值