一般时候,我们更新listview的时候通常会用到notifyChanged方法,当调用这个方法的时候,我们所有的item都会有所更新,但是某些时候,我们可能只需要更新一小部分item,或者某个特定的item,这时候怎么办呢,我们先看一下notifyChanged()方法的源码
- public void notifyChanged() {
- synchronized (mObservers) {
- for (int i = mObservers.size() - 1; i >= 0; i--) {
- mObservers.get(i).onChanged();
- }
- }
- }
当调用这个方法的时候,我们如果想单独刷新某个item,可以重写一个方法
- private void updateView(int itemIndex){
- intvisiblePosition = yourListView.getFirstVisiblePosition();
- View = mListView.getChildAt(itemIndex - visiblePosition);
- ViewHolder viewHolder =(ViewHolder)v.getTag();
- if(viewHolder!= null){
- //在这里写上需要更新的部分就好了
- }
- }