9
내 목록보기에 필터 설정 그래서 후

: 내가 달성하기 위해 노력하고있어안드로이드 - 목록보기 필터 수

//Log adapter count before filter 
listView.getFilter().filter(searchStr) 
//Log adapter count after filter 

그 필터링 결과의 수를 얻을하는 것입니다. 이전에 10 개 항목이있는 경우와 마찬가지로 필터를 적용하므로 이제는 5 개 항목 만 나타나고 해당 개수는 5 개가되고 싶습니다. 행운을 빌어 필터 전후에 어댑터 수를 확인해 보았습니다. 그들은 필터를 적용하면 동일한 수 (BaseExpandableListAdapter를 사용하고 있습니다)를 표시하고 필터를 다시 적용하면 이전과 이후의 숫자가 바뀝니다 (필터의 전후가 여전히 동일 함). 내 어댑터가 바로 반영 카운트를하지 않는 어쩌면 생각하지만 두 번째 필터에,이 값을 변경

Before filter the count is 10. After filter the count is 10. 
Before filter the count is 8. After filter the count is 8. 

: 아래

내가 내 로그를 얻고 무엇의 샘플 결과입니다 그래서 필터가 차이를 만들었을 후에 notifyDataSetChanged라고 생각했지만 그렇지 않았습니다. 어떤 도움을 주시면 감사하겠습니다.

감사합니다.

답변

19

이것은 내가 그것을 관리하는 방법이다 : 나는 ExpandableListView를 사용하고

myAdapter.getFilter().filter(searchText, new Filter.FilterListener() { 
    public void onFilterComplete(int count) { 
     Log.d("log", "result count:" + count); 
    } 
}); 
+0

실제로이 문제는 나에게 원래의 문제를 풀어주었습니다. 필터가 Asynctask에서 투명하게 실행되고 publishResults가 실제로 호출되기 전에 setAdapter가 호출 되었기 때문에 내 목록이 모든 요소와 함께 초 단위로 표시되었습니다. 누락 됨 – leRobot

+1

) ; 코드에 \t ,,, 필터 근처에 열림 (그러나 닫기 bracket.so 추가); 끝에 – sasikumar

-1

필터를 적용한 후 listview.getCount()으로 전화 해보십시오.

+0

. 그리고 그것을 사용하면 각 그룹의 자식 카운트가 아닌 그룹 카운트가 반환됩니다. – lorraine