Cộng đồng Hỏi & Đáp của Inflearn

Phát triển ứng dụng Android dựa trên Kotlin của Jaeseong Yoon Phần 1 - Lập trình giao diện người dùng
41강 AutoCompleteTextView강의 영상 중 onItemClick 이벤트 관련 질문입니다.
Viết
·
369
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 값으로 넘어오는 값의 문제 같은데, 이를 해결하는 방법이 없을까요?
androidkotlin
Câu trả lời 2
0
첫번째로 선택된 값을 보여줄 때 data1 이라는 배열에서 값을 찾는게 오류부분 같습니다. (${data1[position]})
배열 값 내에서 사용자가 입력한 b로 시작하는 값들을 추려낸 후 드롭다운 리스트에 보여주는데
그 리스트 내에서 선택한 값에 대한 position값이 배열 전체에서 선택한 값에 대한 positioin과는 전혀 다르기 때문입니다.
단순히 선택한 값을 보여줄거면 아래와 같이 적용하면 될 것 같습니다.
textView2.text = "${(view as TextView).text.toString()} 항목을 클릭했습니다" // .toString() 은 생략 가능
또한, 아래 링크 참고 하셔서 position, id 값들을 한번 체크해보시는것도 도움이 될 것 같습니다.
(현재 예제에선 position, id 의 값은 같을 수 밖에 없네요^^;)
0




