2009-05-21 61 views
7

我使用SimpleCursorAdapterCursor填充了ListActivity,该列表在单击其中一个列表项时启动另一个活动。我也使用ViewBinder来做一些自定义的数据转换。用复选框点击自定义列表

我想添加一个CheckBox到列表中的每一行,所以我已经改变了视图并添加了一个CheckBox重力权。

添加CheckBox已删除点击项目的功能。当您按列表项目时,我在ListActivity中重写的onListItemClick方法不再被调用。删除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我选择自定义OnClickListener我的主要LinearLayout,然后又OnCheckedChangeListenerCheckBox

对于这一切看的权利,我不得不设置LinearLayout的背景Android的菜单项绘制:

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

你好你可以张贴这更多的代码? – Maxrunner 2012-01-05 01:01:41

14

至于解释here,如果没有其他的看法是focusable点击监听器只适用。设置你的CheckBoxfocusable="false"应该做的伎俩:

<CheckBox android:focusable="false" />