2010-07-10 5 views
2

ArrayList를 사용하는 Android ListView가 있습니다. 사용자가 목록의 항목을 클릭하면 해당 항목이 제거됩니다. 이 모든 것이 제대로 작동하는 것으로 보입니다. 남아있는 항목이 없을 때까지 각 항목을 클릭 할 수 있습니다.안드로이드 ListView/ArrayAdapter에서 항목을 제거하면 텍스트 필터링 후 작동하지 않습니다.

그러나 텍스트 필터링이 발생하면 모두 잘못됩니다. 목록이 한 번 필터링되면 해당 필터가 지워지더라도 어댑터에서 remove (Object)를 호출하면 모든 항목이 표시 목록에서 제거되지 않습니다. 항목을 제거하기 전에 ListView.clearTextFilter()를 호출 해 보았습니다. 항목을 제거한 후에 호출하고 모두 호출하지 않았습니다. 차이점이 없습니다.

ArrayAdapter.java의 소스를 살펴본 결과, 필터링이 설정되면 어댑터는 하나의 컬렉션을 사용하여 쿼리에 응답하지만 다른 컬렉션을 업데이트하는 것으로 보입니다. 나는 그것의 행동을 되돌릴 수있는 분명한 방법을 볼 수 없습니다. 이게 버그 야? 아니면 내가 놓친 게 있니?

+0

지금은 항목을 제거 할 때 새 어댑터를 만들고 있습니다. 그것은 작동하지만 더 효율적 일 수 있습니다. –

답변

1

이것은 버그 인 것 같습니다. 나는 그것을 here이라고보고했다.

+0

약 7 년 후, 해결책을 찾았습니까? –

+0

@ S.R이 프로젝트가 어떤 프로젝트인지 기억이 나지 않지만 위의 설명에서 언급 한 해결 방법을 사용할 때마다 (새 어댑터를 사용할 때마다) 생각한 것 같습니다. –

관련 문제