ListView與Adapter之間的觀察者模式

2021-08-19 08:49:02 字數 2341 閱讀 5195

有注釋的地方為主要分析部分(主要**)

//分析主要**

/************

* listview.class 中

* class listview extends abslistview

*/public

class

listview

extends

abslistview

}} /************

abslistview.class 中

*/public

abstract

class

abslistview

extends

adapterview

}@override

public

void

oninvalidated() }}

}/*********************** adapter 的相關類

*baseadapter.class 中

*/public

abstract

class

baseadapter

implements

listadapter, spinneradapter

//註冊觀察者

//"分析2" 時呼叫

public

void

registerdatasetobserver(datasetobserver observer)

//登出觀察者

public

void

unregisterdatasetobserver(datasetobserver observer)

//notify 通知資料改變

public

void

notifydatasetchanged()

}/*****

listadapter.class 中

*/public

inte***ce

listadapter

extends

adapter

/**********************

*datasetobservable.class 中

是observable的子類

可以呼叫mobservers集合

*/public

class

datasetobservable

extends

observable }

}public

void

notifyinvalidated() }}

}/*********

observable.class 中

*/public

abstract

class

observable

synchronized(mobservers)

//新增進list中

mobservers.add(observer);}}

//登出

public

void

unregisterobserver(t observer)

synchronized(mobservers)

//從list中移除

mobservers.remove(index);}}

public

void

unregisterall() }}

ListView 更高效的使用 Adapter

一 adapter adapter是listview和資料來源之間的中間人。當每條資料進入可見區時,adapter會呼叫他的getview 方法,並返回代表具體資料的檢視。滾動的時候頻繁呼叫,支援成千上萬的資料。最簡單的方法,最慢最不實用 public void getview int positi...

ScrollView與ListView的相關問題

在scrollview中套用乙個listview,listview的高度不能全部顯示,這樣就達不到我們所需要的效果,所以在這裡我們需要重新計算listview的高度,網上計算listview的總高度的方法很多,我在這裡總結一下,貼出 public class listviewutil viewgro...

ListView與ScrollView衝突解決方法

眾所周知listview與scrollview都具有滾動能力,對於這樣的view控制項,當scrollview與listview相互巢狀會成為一種問題 問題一 scrollview與listview巢狀導致listview顯示不全面 問題二 scrollview不能正常滑動 解決方式一 scroll...