android listview的坑

刚刚进入公司参加工作,遇到关于listview的坑,记录一下,也希望能帮助到遇到同样困难的朋友


1.点击listview子项没有任何反应

我在fragment里面放置一个listview,listview子布局里面有一个checkbox控件,然后设置监听事件setOnItemClickListener,结果发现没有任何反应,在网上搜索之后才知道如果listview子布局里面有类似checkbox、imagebutton之类的控件,这类控件会抢先获得焦点,因此需要在子布局里面的根布局设置一个属性  android:descendantFocusability="blocksDescendants"  

 这个属性值有三种:

 beforeDescendants:viewgroup会优先其子类控件而获取到焦点

 afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点

 blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点

2.item的点击事件与item里面的checkbox的点击事件分开

需求是做一个统计,每点击一次就会+1,结果我发现只要点击的区域是checkbox的区域,不会+1,不是checkbox的区域才会+1

这样只需要在checkbox控件上设置clickable=false即可

3.这个不是与listview相关的,不过都是一个进程下来的,所以也记录一下

fragment与该fragment绑定的activity之间的数据传递

首先,在fragment里面进行fragment->activity的页面跳转,跳转方法与activity之间的跳转一样,因为需要返回值,所以采用startActivityForResult方法进行跳转,起初我是在fragment里面重写onActivityResult方法来获取返回值,结果发现根本没有进入到fragment里面的这个方法,于是猜想是不是在与该fragment绑定的activity的onActivityResult方法,试了一下,果然是这样,然后问题就来了,我该怎么在fragment里面获取到这个值 - -   百度了一下,看到有人说在activity里面提供get方法,试了一下,成功了,因此记录一下  具体方法:在activity里面为该变量(全局变量)提供get方法(类似javabean实体类的get属性),在fragment里面通过getActivity获取到对象,再强制转换成与fragment绑定的activity类型,这下就可以调用get方法获取到值了!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值