点击Android中自定义列表视图中的复选框

点击Android中自定义列表视图中的复选框,第1张

概述我的列表视图行有自定义布局: <?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_ 我的列表视图行有自定义布局:

<?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中自定义列表视图中的复选框所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/1127485.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-30
下一篇2022-05-30

发表评论

登录后才能评论

评论列表(0条)

    保存