나는 목록의 모든 요소에 TextView와 두 개의 서로 다른 Button이있는 ListView
입니다. 이런 식으로 뭔가 :안드로이드 : 여러 클릭 가능한 버튼이있는 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
(인 버튼 클릭이 발생하는 목록)에서
업데이트 : 아래의 내 답변에 설명 된 해결책을 발견했습니다. 이제 터치 스크린을 통해 버튼을 클릭/탭할 수 있습니다. 그러나 트랙볼로 수동으로 선택할 수는 없습니다. getView()
의 버튼에 대해 .setFocusable(true)
및 setClickable(true)
을 설정하더라도 항상 전체 목록 항목을 선택하고 그 다음 항목 목록으로 직접 이동합니다.
나는 또한 내 사용자 지정 목록 어댑터에이 코드를 추가 :
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
이 더 목록 항목이 모두 더 이상에서 선택할 수 없음을 야기한다. 그러나 중첩 된 단추를 선택 가능하게 만드는 데 도움이되지 않았습니다.
누구나 아이디어가 있으십니까?
그래도 필요합니까? –
BaseAdapter 코드를 보면 areAllItemsEnabled() 및 isEnabled()가 true로 하드 코딩되어 모든 로직이없는 간단한 자리 표시자인 것을 알 수 있습니다. –
SimpleCursorAdapter를 사용하려면 어떻게해야합니까? simplecursoradapter를 확장하는 사용자 지정 어댑터를 만들어야합니까? – oratis