2011-04-07 3 views
3

내 안드로이드 앱에 대한 몇 가지 테스트를 설정하려고하는데 데이터베이스의 항목 생성이 내 ListView에 표시되는지 테스트하고 있습니다. 여기 어댑터 getCount 및 listView getChildCount가 동일하지 않습니다.

는 일부 코드입니다 :

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

첫 어설 작동 잘 하지만 두 번째로, 0

그래서 어댑터가 좋지만, 목록보기가 표시되지 않습니다를 반환 getChildCount?

수동으로 테스트 할 때 기능이 작동합니다.

+0

getChildCount()를 호출하면 아직 mAccountList가 채워지지 않은 것입니다. 또한 내가 정확히 ListView.getChildCount()에 의존하는 것이 좋습니다 당신의 어댑터가 제공 한 것들과 관련이없는 자식 뷰를 포함 할 것이기 때문에 확실하지 않습니다. – harism

답변

2

mAccountList.getChildCount()ViewGroup의 메서드를 말하며이 뷰에 포함 된 뷰의 수를 반환하지만 ListView의 메서드 자체는 아닙니다. 따라서 귀하의 주장은 유효하지 않습니다.

+0

나도 알아,하지만 난 ListView에서 표시되는 조회수를 제공하는 다른 방법을 찾을 수 없다, 나는 getFirstVisiblePosition()과 함께 갈 것 같아 –

+0

'ListView'에'OnScrollListener'를 추가 할 수 있습니다. 메소드'onScroll'은'visibleItemCount' 인자를 포함합니다. AFAIK,'onScroll'은 목록이 너무 작아서 (심지어 행이 전혀 없다고 할지라도) 호출됩니다. – ernazm

1

getCount() 메서드는 목록에 포함 된 항목 수를 반환합니다. getChildCount() 메서드는 화면에 표시되는 항목 수를 반환합니다.

관련 문제