2009-10-12 2 views
1

OLD 질문 (이미 마크 응답 - 대답은 GetTag의를 사용하는 것입니다()) :Android : 사용자 정의보기의 이벤트 처리기? (질문은 개정)

이의 내가 이미지 뷰와 텍스트 뷰를 가진 각 행에 대해 사용자 지정 레이아웃 ListView가 있다고 가정 해 봅시다. 이제 클릭이 이루어지면 뷰를 기반으로 클릭 한 이미지와 텍스트 뷰를 확인할 수 있지만이 정보를 다른 활동에 전달해야한다면 위치가 필요합니다. 그러나, 어떻게 목록보기에서 클릭 한 항목의 위치를 ​​얻을 수 있습니까?

개정 질문 :

나는 다음과 같은 일을 오전 : 이미지 뷰와 텍스트 뷰와 사용자 정의 목록보기. 이미지 또는 텍스트 요소를 클릭했는지 여부에 따라 다른 작업을 수행하고 싶습니다. 이제 이벤트 처리를 수행하기 위해 취할 수있는 두 가지 접근 방법이 있습니다.

접근법 1 : OnItemClick Listener를 ListView의 항목에 연결하고 적절한 작업을 수행하십시오. 문제점 : 어떤 요소 (이미지 또는 텍스트)를 클릭했는지는 의문의 여지가 있습니다. 이 정보를 어떻게 결정하고 필요한 조치를 취할 수 있습니까?

접근법 2 : OnClick Listener를 각 목록보기 항목 내에서 별도로 이미지와 텍스트에 첨부 한 다음 적절한 작업을 수행하십시오. 문제점 :이 접근 방식의 성능에 대해 매우 회의적입니다. 그것에 덧붙여서, 클릭이 수행 될 때 항목의 행이 강조 표시되지 않아 직관력이 높지 않습니다. 이 경우 행 강조 표시를 어떻게 만들 수 있습니까?

제안 사항?

+0

클릭 할 수있는 행이나 각 행의 항목이 필요합니까? –

+0

실제로 행 내부의 항목을 찾고 있습니다 ...하지만 행 내부 항목 (매우 부피가 크다)에 이벤트 처리기를 연결하거나 이벤트 처리기를 행에 연결 한 다음 어떤보기가 클릭되었는지 확인하는 것이 좋습니다. ... (일을 더 잘하는 방법처럼 보입니다) ... – Legend

+0

@Legend이 답변을 얻었습니까? 나는 같은 문제에 갇혀있다. 어느 뷰 (이미지 뷰 또는 텍스트 뷰가 클릭되었는지)를 결정하기 위해 당신은 무엇을 했습니까? 또한, 안드로이드에 대한 새로운 기능입니다. 뷰에 개별적으로 onCLick 이벤트를 할당하는 방법을 알고 있습니다. 그러나 각 뷰를 연속으로 수행하는 방법은 무엇입니까? 내가 생성하는 Eack 인 텐트는 클릭 한 뷰와 어떤 뷰를 클릭했는지에 따라 달라야합니다. – harshit

답변

4

setTag()을 통해 행 (또는 위젯 중 하나)에 위치를 첨부하고 필요한 경우 getTag()을 통해 검색하십시오.

+0

정말 고마워요. 실제로 태그를 설정할 수 있다는 의미입니까? 정보) 자체? 이 경우 위치 변수를 사용하여 항목의 속성을 가져 오는 것에 대해 걱정할 필요가 없습니다. 제안 사항이 있습니까? – Legend

+0

또한이 모든 것이 복잡해 보이는 경우 실제로 어떤보기를 클릭하여 특정 작업을 수행 할 수있는 방법이 있습니까? – Legend

+0

w/r/t 첫 번째 의견은 초록에서 대답 할 수 없습니다. w/r/t 두 번째 메모에서 OnClickListener는 onClick() 메서드에서 어떤보기가 클릭되었는지 알려줍니다. – CommonsWare