ListView单行刷新

之前要改变某一行ListView内容或者显示出删除按钮等,都要adapter.notifyDataSetChanged();刷新一下,数据少还可以,数据多的时候明显会消耗性能,单独刷新某一行就不会了,这还要感谢坤哥(牛人,大学室友)教的方法,我现在分享给大家

在你要刷新adapter的地方这样写

position是点击listView的行位置

当然在执行下面2行的代码前要改变数据内容

例如:

if (orderList[pos].getStatus() == 0) {

orderList[pos].setStatus(1);

} else {

orderList[pos].setStatus(0);

}

//此方法单独刷新某一行item

View view = listView.getChildAt(position- listView.getFirstVisiblePosition()); 
listView.getAdapter().getView(position, view, listView );

时间: 2024-11-05 13:41:31

ListView单行刷新的相关文章

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

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

listView局部刷新

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

ListView单条刷新的方法

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

Android中设置ListView内容刷新问题

最近在学习Android的listView控件时遇到了一个问题,如何添加一个Item到ListView中并及时的刷新出来.在网上查了很多帖子,很多人在问,也很多人在解答,但是总的来说都没找到详细的解决方案.对于ListView与数据库的同步,高手们建议使用ContentProvider对象.但是如果我不使用数据库呢?也有人回答用notifyDataSetChanged()方法.这倒是一个正确的解决方案,但是对于新手来说,还是比较困惑怎么去用,这里我贴一下我的用法: 代码 OnClickListe

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

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

ListView解决刷新时Item中的图片出现闪动

问题描述: Listview的item中有图片,在刷新时及时新数据和旧数据并无两样,imageview还是会闪动. 先来分析图片闪动可能的原因: 1)adapter = new WillListAdapter(MyApplication.getInstance(), wills); 不管此前adapter是否已绑定数据,或数据前后有没有变化,这条语句执行的时候,adapter都会使listview重绘所有item,这个闪动不可避免 2)adapter.notifyDataSetChanged()

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

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

ListView单独刷新一个View

当ListView中的数据发生了改变,我们希望刷新ListView中的View时,我们一般会调用NotifyDataSetChanged来刷新ListView,它针对每一个子View都做了刷新,当然,如果我们的数据都变量还可以理解.但是,一般条件下,我们需要更新的View不多.频繁的调用 NotifyDataSetChanged方法,刷新整个界面不合适.这样会把界面上显示的所有item都全部重绘一次,即使只有一个view的内容发生 了变化. 所以,我们可以写一个update的方法,来单独刷新一个

jquerymobile listview 局部刷新

function onSuccess(data, status) { data = $.trim(data); // alert(data); // return; if (data) { $('#list_date').html(data).listview('refresh'); // alert(); // $('#list_data').trigger('create'); // $('#list_data').listview(); // $('#list_data').listvie