8

我已经ListActivityCursor使用SimpleCursorAdapter中填充了一个,当单击其中一个列表项时,它会启动另一个活动。我还ViewBinder用来对数据进行一些自定义转换。

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

添加CheckBox删除了单击项目的能力。当您按下列表项时,不再调用onListItemClick我覆盖的方法。ListActivity删除此CheckBox修复程序。为什么是这样?

CheckBox另外,如果单击列表项的主要部分但在选中项目中时具有附加功能,我如何设置列表以便它继续执行我所需的功能?将设置一个onCheckedChangedListener工作还是为列表中的每个项目重用相同的视图实例?

4

2 回答 2

13

正如这里所解释的,点击监听器只有在没有其他视图的情况下才起作用focusable。设置你CheckBox应该focusable="false"做的伎俩:

<CheckBox android:focusable="false" />
于 2009-11-28T14:05:07.457 回答
3

看起来SimpleCursorAdapter对于我想要实现的目标来说太原始​​了。我已经切换到在我的方法实现中CursorAdapter使用实现并返回一个新视图。LayoutInflaternewView

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

在 bindView 中,我OnClickListener为我的 main设置了一个自定义LinearLayout,然后OnCheckedChangeListenerCheckBox.

为了让这一切看起来正确,我必须将LinearLayout' 背景设置为 android 的 menuitem 可绘制对象:

android:background="@android:drawable/menuitem_background"
于 2009-05-21T22:33:17.257 回答