마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

ArrayAdapter 한글 검색과 검색 후 초기화

0 추천
검색 기능이 필요해서 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에는 적용이 되지 않습니다.

혹시 이에 대한 해결책이 있으시면 답변 부탁드립니다.
마플 (3,720 포인트) 님이 2014년 3월 14일 질문

1개의 답변

+1 추천
안녕하세요.

 

ArrayAdapter의 Filter 예제를 만들었습니다. 테스트해보니 한글이 문자 단위로 검색이 되네요. 참고하세요.

 

http://blog.naver.com/goodsogi/40208386314
방귀과장 (18,940 포인트) 님이 2014년 3월 14일 답변
답변 감사드립니다.
블로그를 보니 첨부파일이 있는거 같은데 해당 글에는 등록되어 있지 않네요.
확인 부탁드립니다.
첨부 파일이 다운이 안되나요? 제가 해보니 되는데요.
확인했습니다. 번거롭게 해드려서 죄송합니다.
ArrayAdapter의 Filter예제로서 손색이 없으나
제가 원하는 내용은 아니네요.
답변 감사드립니다.
...