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

리스트뷰에서 클릭 없이, 아이템을 받아오는 방법

0 추천

안녕하세요 음성인식 관련해서 앱을 하나 만들고 있습니다.

구글 API를 이용해서 음성인식 처리까지는 문제없이 진행했는데

이를 리스트뷰에 넣고 음성인식으로 다시 리스트뷰에 해당 아이템이 있는지 확인하는 과정에서

리스트뷰를 클릭없이 해당 아이템의 텍스트를 받아오는 방법을 모르겠습니다. 

for문으로 

(String)wrap_list.getAdapter().getItem())

을 반복해서 진행했는데 전혀 찾아오는 것 같지가 않습니다.

방법이 있다면 알려주시면 감사하겠습니다.

과과묻 (210 포인트) 님이 2020년 5월 12일 질문

3개의 답변

+1 추천
리스트뷰는 말그대로 화면에 데이터를 보여주는 껍데기이고 실제 데이터는 리스트뷰 생성자 인자값으로 들어가는 arrayList값이겠지요. 클릭한 값을 가져오는 것이 아닌, 음성인식으로 입력된 값이 arrayList안에 포함되어있는지를 확인하셔야 할듯해요.
익명사용자 님이 2020년 5월 14일 답변
음성인식으로 입력된 값이 ListView에 보이는게 arrayList 안에 들어가 있다는 거랑 동일한 것이 아닌가요? 휴대폰으로 확인했을 때, LIstView에 추가가 되는 것 까지는 확인을 했습니다. 그래서 이 부분은 문제가 없다고 생각했구요. 그런데 말씀하신 대로라면 arrayList가 ListView에 값을 넣고 그 값이 초기화 되나요? 만약 그렇다면 ListView에서 보이는 값을 받아오는 방법은 없는건가요?
+1 추천
이해를 잘못해서 설명을 잘못드린부분이 있는것 같네요. 그냥 로컬DB하나 선택하셔서 음성인식으로 아이템이 추가될때마다 해당값들을 추가하신뒤에 확인하는 과정에서 로컬DB에서 조회해서 비교하시면 될듯해요. 굳이 자동으로 클릭해서 그값을 가져와서 하는방식은 비효율적인듯해요.
익명사용자 님이 2020년 5월 17일 답변
친절한 답변 감사합니다. 그런데  저도 설명을 잘못 드린거 같네요. 비효율적으로 보일수도 있지만, 음성으로 아이템을 ListView에 추가하고, 다시 다른 버튼으로 음성인식을 또 한번 했을 때 그 때 음성인식한 것이 ListView에 있는 아이템 중 하나인 경우 그 ListView의 아이템이 속한 인덱스를 출력하도록 만들고자 합니다. 아두이노와 연동하여 그 인덱스 번호에 따라서 다른 일을 처리할 것이구요. 결론적으로 클릭은 의도하지도 않았고 원하는 바도 아닙니다. 말씀하신대로 클릭으로 이를 구현할 생각이 없어서 음성인식으로 받아온 텍스트가(이를 Array로 받아오긴 합니다.) ListView의 arrayList의 item과 같다는 것을 인식하도록 만들기만 하면 됩니다. 이를 구현하기 위해 찾아낸 방법이 질문에 적은대로
(String)wrap_list.getAdapter().getItem()) <- 이 것인데 전혀 리스트의 아이템을 받아오는 것 같지가 않아서 드린 질문입니다.
 질문이 난해함에도 답변해주셔서 너무나 감사드립니다. 혹시 시간이 되시고 가능하시다면 제가 따로 코드 전문을 보내드리고 조언을 구하고 싶은데 가능하시면 답변 부탁드리겠습니다.
0 추천
상세한 상황을 몰라 도움이될진 모르겠으나 디스코드 초대코드 생성해서 알려주시면 접속해볼게요
익명사용자 님이 2020년 5월 18일 답변
오픈카톡 : https://open.kakao.com/o/sIJVfscc
디스코드 : https://discord.gg/BKK6MvU
제가 둘 다 잘 몰라서 이거 가르쳐드리면 되는게 맞는지 모르겠네요.
...