自定义列表单击复选框

Tom*_*tin 8 checkbox android android-listview android-viewbinder

当我点击其中一个列表项时,我已经填充了ListActivity一个启动另一个活动的Cursor使用SimpleCursorAdapter.我也ViewBinder用来做一些自定义的数据转换.

我想CheckBox在列表中的每一行添加一个,所以我改变了视图,并添加了一个CheckBox重力权利.

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

此外,如果单击列表项的主要部分但CheckBox在选中项目时具有其他功能,如何设置列表以便继续执行我所需的功能?是否会onCheckedChangedListener为列表中的每个项目重新设置工作或相同的视图实例?

Jos*_*ger 14

正如解释在这里,如果没有其他的看法是点击监听器只适用focusable.设置你CheckBoxfocusable="false"应该做的诀窍:

<CheckBox android:focusable="false" />
Run Code Online (Sandbox Code Playgroud)


Tom*_*tin 3

看起来SimpleCursorAdapter对于我想要实现的目标来说太原始​​了。我已转而使用该方法的实现中的来实现CursorAdapter并返回新视图。LayoutInflaternewView

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

然后在bindView中,我将一个自定义设置OnClickListener为我的主视图LinearLayout,然后将另一个自定义OnCheckedChangeListener设置为CheckBox.

为了让这一切看起来正确,我必须将 的LinearLayout背景设置为 android 的可绘制菜单项:

android:background="@android:drawable/menuitem_background"
Run Code Online (Sandbox Code Playgroud)