我的列表视图行有一个自定义布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/listSelector"
android:orientation="horizontal">
<LinearLayout
android:id="@+id/checkboxSelection1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="3dip">
<CheckBox android:id="@+id/checkbox1" />
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/checkbox1"
android:orientation="vertical">
<TextView
android:id="@+id/text1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/text2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</RelativeLayout>
我还有一个适配器来获取要显示的适当数据;它确实如此。从 UI 的角度来看,它看起来像是我想要的。
但是,当我单击一个复选框时 - 没有任何反应。我想在后端存储我选择的项目列表(理想情况下在活动类中)。
在活动类的 onCreate 中,我有以下代码:
listView.setAdapter(adapter);
listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
// Click event for single list row
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
int i = 1;
}
});
我有 int 1 = 1; 行在那里,这样我就可以添加一个断点来查看它是否被命中。它没有。我确定我做错了什么,就像它连接到列表视图行而不是复选框或其他东西 - 但我不确定如何将事件连接到复选框。
如果有人能指出我正确的方向,我将不胜感激。
谢谢
编辑:只是为了澄清
我在适配器中有这个:
taskChecked.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
public void onCheckedChanged(CompoundButton arg0, boolean arg1)
{
// TODO Auto-generated method stub
int i = 1;
}
});
这个断点确实被击中了。所以我只是想找出当一个复选框被选中或取消选中时,我如何在活动中引发一个事件,而不仅仅是适配器。