확인란으로 클릭하는 사용자 정의 목록
-
23-08-2019 - |
문제
나는 채워졌다 ListActivity
a Cursor
사용 SimpleCursorAdapter
목록 항목 중 하나를 클릭하면 다른 활동이 시작됩니다. 나도 사용하고 있습니다 ViewBinder
데이터의 사용자 정의 변환을 수행합니다.
추가하고 싶습니다 CheckBox
목록의 각 행에 뷰를 변경하고 CheckBox
중력으로.
추가 CheckBox
항목을 클릭하는 기능을 제거했습니다. 그만큼 onListItemClick
내가 재정의하는 방법 ListActivity
목록 항목을 누르면 더 이상 호출되지 않습니다. 제거 CheckBox
이것을 해결합니다. 왜 이런거야?
또한 목록 항목의 기본 부분이 클릭되지만 추가 기능이있는 경우 필요한 기능을 계속 수행 할 수 있도록 목록을 설정하려면 어떻게해야합니까? CheckBox
항목에서 확인 되었습니까? a onCheckedChangedListener
작업 또는 목록의 각 항목에 대해 동일한보기 인스턴스가 재사용됩니까?
해결책 2
보입니다 SimpleCursorAdapter
내가 달성하고 싶었던 것에 대해 너무 원시적입니다. 구현으로 전환했습니다 CursorAdapter
그리고 The를 사용하여 새로운보기를 반환합니다 LayoutInflater
내 구현에서 newView
방법.
public View newView(Context context, Cursor cursor, ViewGroup parent) {
return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false);
}
Bindview에서는 사용자 정의를 설정했습니다 OnClickListener
내 메인에 LinearLayout
그리고 또 다른 OnCheckedChangeListener
~로 CheckBox
.
이 모든 것이 올바르게 보이기 위해 LinearLayout
Android의 menuitem에 대한 배경 :
android:background="@android:drawable/menuitem_background"
다른 팁
설명 된 바와 같이 여기, 클릭 리스너는 다른보기가없는 경우에만 작동합니다. focusable
. 당신의 설정 CheckBox
에게 focusable="false"
트릭을 수행해야합니다.
<CheckBox android:focusable="false" />