2011-04-07 74 views
3

我想爲我的android應用程序設置一些測試,並且我正在測試在數據庫中創建一個條目是在我的ListView中顯示的。適配器getCount和listView getChildCount不等於

這裏是一些代碼片段:

mDbHelper.createAccount(); 
assertEquals(1, mAccountListAdapter.getCount()); 
assertEquals(1, mAccountList.getChildCount()); 

第一斷言工作正常 但在第二,getChildCount返回0

所以適配器是好的,但列表視圖不顯示呢?

當我手動測試時,該功能雖然工作。

+0

我沒有受過教育的猜測是,一旦你調用getChildCount(),mAccountList還沒有被填充。此外,我不確定是否建議依賴於ListView.getChildCount(),因爲它可能包含與您的Adapter提供的子視圖無關的子視圖。 – harism 2011-04-07 10:05:19

回答

2

mAccountList.getChildCount()指的是ViewGroup的方法,它返回此視圖包含的視圖的數量,它不是ListView的方法本身。所以你的斷言是無效的。

+0

我知道,但我找不到任何其他方法,讓我在ListView中顯示視圖的數量,我想我會去getFirstVisiblePosition() – 2011-04-07 10:07:40

+0

您可以將'OnScrollListener'添加到'ListView'。它的方法'onScroll'包含'visibleItemCount'參數。 AFAIK,即使列表太小而無法滾動(甚至根本沒有行),也會調用onScroll。 – ernazm 2011-04-07 10:27:38

1

getCount()方法返回包含在列表中的項目數 getChildCount()方法返回屏幕中可見項目的數量。