ListView单条刷新的方法

我们一般会调用notifydatasetchange通知listView刷新界面。但会造成getView方法被多次调用(画面上能显示多少就会被调用多少次),如果是很明确的知道只更新了list中的某一个项的数据,应该尽量避免getView被无辜的多次调用。我们希望的是对屏幕上已经显示的item进行针对性刷新,那么我们就必须得到屏幕上第一个item和最后一个item的位置,之后手动调用adapter的getView()方法。

下面是google给出的listview单条刷新的方法:

private void updateSingleRow(ListView listView, long id) {  

        if (listView != null) {
            int start = listView.getFirstVisiblePosition();
            for (int i = start, j = listView.getLastVisiblePosition(); i <= j; i++)
                if (id == ((Messages) listView.getItemAtPosition(i)).getId()) {
                    View view = listView.getChildAt(i - start);
                    getView(i, view, listView);
                    break;
                }
        }
    }  

参考自:

http://blog.csdn.net/yuyuanhuang/article/details/43198107

时间: 2024-10-07 10:05:37

ListView单条刷新的方法的相关文章

Android ListView 单条刷新方法实践及原理解析

对于使用listView配合adapter进行刷新的方法大家都不陌生,先刷新adapter里的数据,然后调用notifydatasetchange通知listView刷新界面. 方法虽然简单,但这里面涉及到一个效率的问题,调用notifydatasetchange其实会导致adpter的getView方法被多次调用 (画面上能显示多少就会被调用多少次),如果是很明确的知道只更新了list中的某一个项的数据(比如用户点击list某一项后更新该项的显示状态,或者 后台回调更新list某一项,等等),

ListView 单条刷新方法实践及原理解析

对于使用listView配合adapter进行刷新的方法大家都不陌生,先刷新adapter里的数据,然后调用notifydatasetchange通知listView刷新界面. 方法虽然简单,但这里面涉及到一个效率的问题,调用notifydatasetchange其实会导致adpter的getView方法被多次调用 (画面上能显示多少就会被调用多少次),如果是很明确的知道只更新了list中的某一个项的数据(比如用户点击list某一项后更新该项的显示状态,或者 后台回调更新list某一项,等等),

网页刷新页面方法小结

1.页面自动刷新:把如下代码加入<head>区域中 <meta http-equiv="refresh" content="20"> 其中20指每隔20秒刷新一次页面. 2.页面自动跳转:把如下代码加入<head>区域中 <meta http-equiv="refresh" content="20;url=https://www.baidu.com/"> 其中20指隔20秒后跳转

js刷新页面方法大全

本文介绍下,用js刷新当前页面的几种方法,包括reload方法.replace方法.自动刷新方法等.有需要的朋友参考下吧 如何实现刷新当前页面呢?借助js你将无所不能. 1,reload 方法,该方法强迫浏览器刷新当前页面.语法:location.reload([bForceGet]) 参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页.true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") 2,replace 方法

当写listview的onItemClick的方法时写Toast的参数context写成this出现can&#39;t resolve method ’make text(OnClickListener,java.lang.String,int)&#39;的错误,原因

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Fruit fruit = fruitList.get(position); //Toast.makeText(this,fruit.getName(),Toast.L

Android listview局部刷新和模拟应用下载(zhu)

在android开发中,listview是比较常用的一个组件,在listview的数据需要更新的时候,一般会用notifyDataSetChanged()这个函数,但是它会更新listview中所有可视范围内的item,这样对性能肯定会有影响.比较常见的情景是android应用商店中的下载列表,当我们下载一款游戏的时候,只需要更新这款游戏对应的进度就可以了.本文就来模拟android应用商店的游戏下载,实现对listview的局部刷新,只实现一个简单的demo,不去真的下载文件.1. 首先来创建

js 返回前一页并刷新页面方法

[导读] 要返回上一页再刷新页面我们用到最多的是在像php,asp,jsp,asp.net中,下面我来给大家先介绍js 返回前一页并刷新页面,然后再把这些代码放在php中实现删除后返回当前页面并刷新页面.... JS 重载页面,本地刷新,返回上一页 代码如下 1 2 3 <a href="javascript:history.go(-1)">返回上一页</a> <a href="javascript:location.reload()"

返回前一页并刷新页面方法

原文地址:http://www.zixuephp.com/html/javascript/2014_09/1642.html php实现返回上一页的功能的3种有效方法 header(location:你的上一页的路径);   //   注意这个函数前不能有输出 header(location:.getenv("HTTP_REFERER"));   //   返回其调用页面 echo"<script>alert('随便写点什么');history.go(-1);&l

listView局部刷新

listview局部刷新关键逻辑代码:在activity中 /** * listview局部更新 */ private void updateListView(int position){ int firstVisiblePosition = mListView.getFirstVisiblePosition(); int lastVisiblePosition = mListView.getLastVisiblePosition(); if(position>=firstVisiblePosi