2009-05-21 5 views
7

Cursor에서 ListActivity을 채우었습니다. SimpleCursorAdapter을 사용하여 목록 항목 중 하나를 클릭했을 때 다른 작업을 시작했습니다. 또한 ViewBinder을 사용하여 데이터의 사용자 정의 변환을 수행합니다.체크 박스가있는 사용자 지정 목록 클릭

목록의 각 행에 CheckBox을 추가하여보기를 변경하고 CheckBox을 중력으로 추가했습니다.

CheckBox을 추가하면 항목을 클릭 할 수있는 기능이 제거되었습니다. onListItemClick 메서드를 재정의 할 때 ListActivity은 더 이상 목록 항목을 누를 때 호출되지 않습니다. CheckBox을 제거하면이 문제가 해결됩니다. 왜 이런거야?

또한 목록 항목의 주요 부분이 클릭되었지만 항목의 CheckBox이 선택되었을 때 추가 기능이있는 경우 필요한 기능을 계속 수행하도록 목록을 설정할 수 있습니까? onCheckedChangedListener을 설정하거나 동일한보기 인스턴스가 목록의 각 항목에 다시 사용됩니까?

답변

4

SimpleCursorAdapter은 내가 달성하기를 원했던 것처럼 원시적입니다. CursorAdapter을 구현하고 newView 메서드를 구현할 때 LayoutInflater을 사용하여 새보기를 반환했습니다.

public View newView(Context context, Cursor cursor, ViewGroup parent) { 
    return LayoutInflater.from(context).inflate(R.layout.alarm_row, parent, false); 
    } 

은의 Bindview에서 나는 다음 CheckBox에 다음 내 주요 LinearLayout 다른 OnCheckedChangeListener에 사용자 정의 OnClickListener을 설정합니다. 이 모든 것이 올바르게 표시하려면

내가 이제 당김 메뉴 항목 안드로이드 위해 LinearLayout의 배경을 설정할 수 있었다 : 다른보기 focusable없는 경우

android:background="@android:drawable/menuitem_background" 
+0

안녕이의 더 많은 코드를 게시 할 수 있습니다 : focusable="false"CheckBox 트릭을 할해야 당신의 설정? – Maxrunner

14

으로는 here 설명, 클릭 리스너에만 작동합니다.

<CheckBox android:focusable="false" /> 
관련 문제