2012-08-07 1 views
0

모든 행/항목에 대한보기 목록을 보여주는 listview가 있습니다 (목록 항목은 예를 들어 2 또는 3 개의 단추를 가질 수 있습니다). 모든 항목은 포커스를 갖지 않고 클릭 할 수 없도록 설정됩니다. 이 방법은 내 ListView OnClick에 대한 항목 호출을 클릭합니다. 내가 지금하고 싶은 것은 진짜 클릭 된 뷰 (performasble/cickable로 설정되지 않았기 때문에 아무 것도하지 않음)에서 performClick()을 호출하는 것입니다. 이것이 가능한가? 클릭 위치를 기반으로보기를 얻는 방법을 찾으려고 노력했지만 아무 것도 찾지 못했고 다른 한편으로는 목록보기에 대한 onItemClick 클릭 처리기가 터치의 x/y도 얻지 못하는 것으로 보입니다. 나는 이것을 위해 OnTouchEvent를 사용할 수 있지만 어떤 항목을 클릭했는지 알 수는 없다는 것을 알고있다.실제 터치 된 항목보기로 ListView OnItemClick을

+0

질문이 약간 혼란 스럽습니다. 버튼을 클릭 할 때 onItemClick을 수행하고 싶습니까? 혹은 그 반대로도? –

+0

죄송합니다. 주로 사용자가 목록보기 항목 (사용자 지정 목록 데이터 어댑터를 통해 설정 한보기)에 속한보기 (예 : 단추)를 클릭하면 클릭을 수신 한보기가 단추가 아닌 목록이었고이 후에 performClick() 등을 통해 사용자 정의 목록보기 항목 onclick 처리기에서 클릭되었음을 버튼에 알립니다. 나는 그것이 지금 더 분명하기를 바란다. – Notbad

+0

그래서 두 컨트롤의 onClick 이벤트를 모두 호출 하시겠습니까? 권리? –

답변

3

좋아, 이것을 시도해 보라. ... 일반적인 onClick 버튼을 설정한다. ListItem으로.

@override 
public void onClick(View v) { 
    Sting position=v.getTag().toString();    //<--- like this 
    //task to do when clicks on the view... 
    switch (v.getId()) { 
    case R.id.<id_of_the_button1>: 
      //task to do when clicks on the button 1   
    break; 
    case R.id.<id_of_the_button2>: 
      //task to do when clicks on the button 2   
    break; 
} 

사용자 지정 어댑터의 OnClickListener를 구현 한 후 위의 onClick을 사용하여 오버라이드합니다.

+0

글쎄,이 일을 할 수도, 문제는 그 목록에 대한 어떤 위치 ID (목록 항목)도 거기에 어떤 데이터를 얻기 위해 클릭했는지 알아야 할 것입니다 ... 이것은 목록을 사용하는 이유입니다. OnItemClick . 너의 방법 whith 나는 목록에 항목 위치에 대해 아무것도 몰라. 제 경우에는 각 항목 목록이 메뉴의 다른 옵션이기 때문에 필요합니다. – Notbad

+0

목록을 만드는 동안 위치를 태그로 설정하십시오. setTag() 메서드를 사용합니다. 목록 항목보기에 태그를 설정할 수 있습니다. ive가 대답을 편집했습니다. –

관련 문제