검색 기능이 필요해서 ArrayAdapter에 내장된 Filter를 살펴보고 있는데
구조가 이해가 되지 않아서 질문드립니다.
질문은 두 가지 입니다.
1. 한글 검색이 가능한 공개된 ArrayAdapter소스가 있습니까?
2. ArrayAdapter에서 getfilter().filter("string") 을 적용한 후 상태 초기화가 가능합니까?
상세 내용은 이렇습니다.
1. ArrayAdapter는 String 문자 단위 비교를 합니다.
그러므로 안드로이드라는 문자열은 "안" "드" 와 같은 문자로 검색이 되지만
"ㅇ" "아" 와 같은 문자로는 검색이 되지 않습니다.
혹시 이와 같은 기능이 되는 소스가 있는지 궁금합니다.
2. ArrayAdapter 내부에서는 getFilter() 메소드를 통해 필터가 활성화 되면
mObject 를 mOriginalValues 로 복사해 원본을 저장하는데
문제는 이를 복원하는 메소드는 존재하지 않는다는 것 입니다.
그래서 filter로("")을 주고 있는데 한번 getFilter()를 통해 내부에 mOriginalValues가 활성화되면
그 위에 모든 Collection관련 메소드가 이 mOriginalValues에 적용됩니다. (add(), addall, clear()등.)
그러니
add() -> mOriginalValues에 추가
clear() -> mOriginalValues 초기화
가 되버리는데
getItem() 등에서는 여전히 mObjects를 쥐고 있기 때문에
ArrayAdapter에는 적용이 되지 않습니다.
혹시 이에 대한 해결책이 있으시면 답변 부탁드립니다.