안드로이드 개발 질문/답변
(글 수 45,052)
리스트뷰 클릭에서
부모의 포지션값으로 클릭한 아이템을 읽어오는걸 주로 사용했었는데
제가짠소스는 아닌데
핸들러 에서
for문 a의 크기만큼 반복
{
if ( playerdata[a].indexOf((String) ((Button) v).getText()) != -1 ){
...
}
}
이런식으로 비교를하는데.... 도통이해가 안가서요
저 문법이 무슨내용인가요? 인덱스값이나 내가클릭한 아이템값도아니구...
또 조건문도 제대로도 안돌아가요 ㅜㅜ a가 0일때는 a의 마지막값으로 들어가더라구요...
핸들러에서 리스트뷰의 클릭한 값을 얻어오는방법이있나요?
클릭 이벤트에서 핸들러 쪽으로 메시지를 던질때 데이터를 꺼내서 던져야죠..
메시지 객체에 arg를 2개 넣을수 있을건데요... 하나는 int고 하나는 Object기 때문에 Object쪽에 객체를 넣어주면 될듯 합니다.
저 반복문의 경우는 눌려진 버튼의 text와 playerdata의 데이터들과 비교해서
playerdata의 데이터가 버튼의text를 포함하는 경우 (같은 경우가 아닙니다.) 뭔가를 하게 되어있군요...
이 경우 버튼v가 제대로 전달되었는지가 핵심이 되겠네요.
핸들러인 경우라면 리스트의 onItemClick리스너에서
맴버변수 v에다가 해당 뷰를 대입하는것도 방법이겠으나...
저 소스를 고쳐서 메시지의 arg와의 equals 관계로 확인하게끔 만드는게 더 나아보입니다.