
<?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 rowListVIEw.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; }}); 那个断点确实受到了打击.因此,当我选择或取消选中复选框时,我只是想知道如何在活动中引发事件,而不仅仅是适配器.
解决方法 不要这样做!我几乎疯了,试图在ListVIEw中获取小部件来响应点击.不要将button,Imagebutton或CheckBox小部件放在ListVIEw中. TextVIEws和ImageVIEws是最佳选择.试图对该CheckBox上的单击做出反应,找到它所在的ListVIEw项目,然后向Activity发送一些内容可能对您的健康非常有害.我试过了.TextVIEw ImageVIEw可以在显示复选标记的图标和不显示复选标记的图标之间变化 – 模拟CheckBox;
ImageVIEw本身可以模拟一个button.
需要将ImageVIEw设置为focus = false.
首先,创建一个新类,其中包含要为ListVIEw中的每个项显示的字段.我创建了一个显示的文本和一个指示是否已检查的布尔值.将此类用于ArrayList和ArrayAdapter.
然后为ListVIEw添加setonItemClickListener(),然后使用position查找项视图,然后获取新类的项并切换其布尔值.
在MyArrayAdapter.getVIEw方法中,getItem(position)返回该项的新类的实例.使用布尔值确定要用于ImageVIEw的图标.
当你需要知道ListVIEw中有什么和没有“检查”时,你只需要浏览ArrayList并检查每个项目的布尔值.
总结以上是内存溢出为你收集整理的点击Android中自定义列表视图中的复选框全部内容,希望文章能够帮你解决点击Android中自定义列表视图中的复选框所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)