나는했습니다 ListView
목록의 모든 요소가 텍스트 뷰와 두 개의 서로 다른 버튼을 포함하는 경우를. 이 같은:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
이 코드 OnItemClickListener
를 사용하면 전체 항목에 대해를 만들 수 있습니다 .
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
그러나 전체 항목을 클릭 할 수 있기를 원하지 않지만 각 목록 요소의 두 버튼 만 있습니다.
그래서 내 질문은 다음 매개 변수를 사용 하여이 두 버튼에 대해 onClickListener를 어떻게 구현합니까?
int button
(요소의 어떤 버튼을 클릭했는지)int position
(버튼 클릭이 발생한 목록의 요소)
업데이트 : 아래 답변에 설명 된대로 해결책을 찾았습니다. 이제 터치 스크린을 통해 버튼을 클릭 / 탭할 수 있습니다. 그러나 트랙볼로는 수동으로 선택할 수 없습니다. 항상 전체 목록 항목을 선택하고에서 심지어 세트 불구하고, 버튼을 무시하고 다음 목록 항목에 직접 간다 .setFocusable(true)
과 setClickable(true)
의 버튼에 getView()
.
또한이 코드를 사용자 정의 목록 어댑터에 추가했습니다.
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
이로 인해 목록 항목을 더 이상 선택할 수 없게됩니다. 그러나 중첩 된 버튼을 선택하는 데 도움이되지 않았습니다.
아이디어가 있습니까?