• 카테고리

    질문 & 답변
  • 세부 분야

    모바일 앱 개발

  • 해결 여부

    미해결

41강 AutoCompleteTextView강의 영상 중 onItemClick 이벤트 관련 질문입니다.

22.03.25 12:59 작성 조회수 161

0

안녕하세요.

41강 영상 13분 부분을 직접 실습해 보면

 

abcd, abca, abcb, abcc, bbaa, bcab, bdab <--data1

 

오토컴플리트텍스트뷰 창에 a를 입력했을 때 자동완성으로 뜬 것을 클릭하면 textView2 창에 제대로 된 데이타가 뜹니다.

 

하지만 b를 입력했을 때 자동완성으로 뜬 것을 클릭하면 엉뚱한 것이 뜹니다. 아마도 b를 입력한 상태에서 뜨는자동완성 리스트 중 첫번째인 bbaa를 포지션 0 값으로 넘겨주기 때문에 발생하는 문제 같습니다. 그렇기 때문에 단순히 data1[position]을 하게 되면 원래 data1의 첫번째인 abcd가 화면에 나오게 되네요. (여기서는 bbaa가 떠야되는데 말입니다)

 

아마도 OnItemClickListener 인터페이스를 구현하는 과정에서

onItemClick 메서드에 position 값으로 넘어오는 값의 문제 같은데, 이를 해결하는 방법이 없을까요?

답변 2

·

답변을 작성해보세요.

0

ymyungs님의 프로필

ymyungs

2023.04.11

첫번째로 선택된 값을 보여줄 때 data1 이라는 배열에서 값을 찾는게 오류부분 같습니다. (${data1[position]})

배열 값 내에서 사용자가 입력한 b로 시작하는 값들을 추려낸 후 드롭다운 리스트에 보여주는데

그 리스트 내에서 선택한 값에 대한 position값이 배열 전체에서 선택한 값에 대한 positioin과는 전혀 다르기 때문입니다.

단순히 선택한 값을 보여줄거면 아래와 같이 적용하면 될 것 같습니다.

textView2.text = "${(view as TextView).text.toString()} 항목을 클릭했습니다" // .toString() 은 생략 가능

 

또한, 아래 링크 참고 하셔서 position, id 값들을 한번 체크해보시는것도 도움이 될 것 같습니다.

(현재 예제에선 position, id 의 값은 같을 수 밖에 없네요^^;)

https://wonnyhouse.tistory.com/208

0

이 부분은 확인 후 조치하도록 하겠습니다.

감사합니다.