在dropdown(ListView)的下拉框,为每个item添加删除功能的button,并解决itemSelected无法响应的问题...

本文介绍如何解决使用自定义Adapter时dropdown item选择事件无法响应的问题。通过为自定义布局添加onClickListener,实现了item值的正确赋值,并确保button click事件能被成功捕获。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接着上一篇博客,username能够从下拉列表中选择要登录的账号,同时也能删除对应的账号。
出现的问题是:嵌入自定义的item布局之后(自定义的Adapter中的getView方法中实现),发现item的选择事件捕捉不到了,点击dropdown的item之后完全没有响应。

我经过试验后推测导致问题的原因是这样的:在item中嵌入自定义的布局后,item自身作为父容器,就不会截获touch事件,反而传给里面的布局(包括button)来实现。

如果重写该自定义的布局的onTouch方法,使之返回false,那么ItemSelected的事件就会被捕捉到了,不过另一方面,button的click事件就捕捉不到了。(具体关于父子控件之间,touch事件是如何传递的,网上说明的文章很多)

为了解决这个问题,我为整个自定义布局(例如最外)添加了onClickListener,如果点击了就将item中值赋到AutoCompleteTextView中,button的click事件也能成功另外捕获。

好的,上一下效果图:
[img]http://dl.iteye.com/upload/attachment/293006/c06b62ec-ba76-3737-94f3-241e015b8ec5.png[/img]

选择item之后:
[img]http://dl.iteye.com/upload/attachment/293008/3feb6801-a0be-3edf-9bd9-11a7c61440b5.jpg[/img]

点击删除按钮:
[img]http://dl.iteye.com/upload/attachment/293010/5e8dcc4d-e03c-3ebc-9947-0213483bbcf6.jpg[/img]

删除之后:
[img]http://dl.iteye.com/upload/attachment/293012/085323d9-08c6-3b2c-9b4b-1780201360d0.png[/img]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值