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

초성 자동완성 텍스트뷰 질문 있습니다.

0 추천
현재 초성검색 알고리즘은 널리 알려진 알고리즘을 이용해서 구현을 해놓았는데요

현재 addTextChangeListener안에 TextWatcher를 새로 선언해서 onTextChaged 메소드에서 초성검색을 하고 리스트를 추가해서 setAdapter로 해당 리스트를 넘기는것 까진 해놓았습니다.

그후에 ShowDropDown()함수를 통해서 리스트를 보이도록 해놓았는데요

한글을 제대로 입력하면 잘 나오지만

여전히 초성으로 입력했을때는 작동을 하지 않습니다.

혹시 비슷한 경험을 해보셨거나 해결책을 아시는분 도움부탁드립니다.

 

ps. 혹시 ShowDropDown 함수가 원래 어느리스너 또는 어느 메소드를 통해서 호출되는 구조인지 아시는분도 조언 부탁드립니다. 어디서 호출되는지 알수있으면 그쪽 메소드를 상속받은후 수정해버리면 되지않을까 하는 생각을 하고 있는데 어떻게 실행되는 구조인지 통 모르겠네요 ㅜㅜ
BrightSolo (200 포인트) 님이 2014년 3월 25일 질문
BrightSolo님이 2014년 3월 25일 수정

2개의 답변

+1 추천
일단 저는 afterTextChanged()에서 해주고 있습니다.

들어온 Editable로 ArrayList를 새로 구성해서 ListView에 뿌려주고 있습니다.

afterTextChanged()에서 한 번 해보세요~
Lifeclue (7,930 포인트) 님이 2014년 3월 25일 답변
저도 그렇게 구현을 해 보았었는데요
다사랑을 검색할때 ㄷ을 치면 아무것도 안뜨고 다 로 쳐줘야만 뜨네요...
디버그 해보니 ㄷ을 친 순간 리스트에 들어가는데 말이죠...
그러하다면 초성 검색 알고리즘에 문제가 있는 것이 아닌가요?
ㄷ으로는 검색이 안된다... 디로는 검색이 된다...
초성 검색 방법에 대해 다시 살펴보시는 것이 좋을 것 같습니다.
저는 Unicode로 비교하고 있습니다

추가.
찾아보니 showDropDown() 메서드는 AutoCompleteTextView의 멤버 함수네요.
http://developer.android.com/reference/android/widget/AutoCompleteTextView.html#showDropDown()
어제 계속 만져봤는데 아무래도 AutoCompleteTextView의 필터를 좀더 알아보던지 해야할것같네요...
디버그를 돌렸을때 초성검색까지는 무리없이 되고 리스트에 잘 들어가는데 텍스트바에서 입력받는데서 초성만 쳤을때 못알아보는것같아요
답변감사합니다.
0 추천

ShowDropDown()함수가 무언지도 모르겠거니와~~!(머 물론 대충 감은 옵니다.)

작성하신 함수라면 호출 부부은 스스로가 더 잘 아실텐데....

 

ThisPlus (46,920 포인트) 님이 2014년 3월 26일 답변
...