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

原文地址:https://www.cnblogs.com/tianzhijiexian/p/4278546.html