zoukankan      html  css  js  c++  java
  • Android GridView中设置了Button以后就不能响应OnItemClick()

    当我们在GridView或者ListView里面设置了Textiew的时候,假如我们不给Textiew设置onlick()的话,那么Gridiew的OnItemClick()就是可以执行的,但是当把TextView换成是Button的时候我们也不设置onClick()的话,GridView的OnItemClick()也是不能执行的,为什么呢,这说明Button和TextView内部事件方面有区别,去查看Button的源代码,代码很少就这么几句
    public class Button extends TextView {
        public Button(Context context) {
            this(context, null);
        }

        public Button(Context context, AttributeSet attrs) {
            this(context, attrs, com.android.internal.R.attr.buttonStyle);
        }

        public Button(Context context, AttributeSet attrs, int defStyle) {
            super(context, attrs, defStyle);
        }
    所以,主要的猫腻还是在com.android.internal.R.attr.buttonStyle这个里面,查看这个xml文件,Button设置多了两个属性如下:
    <item name="android:focusable">true</item>
    <item name="android:clickable">true</item>
    所以我们要在代码里面把这两个属性设为false,这样就可以响应GridView的onItemClick方法了,但是一定要注意,不管是Button,还是TextView,只要设置了onClick() 的话,那么OnItemClick()就不会被执行(以上的内容都是基于一个GridView或者是ListView的每个Item只有一项,要不是Button,要不是TextView,不是这种情况的,上面的就只能参考一下了)

  • 相关阅读:
    HTML5边玩边学(2)
    Get Mac NetBIOS
    NetBios协议详解及网上邻居工作原理
    DXperience Universal 10.1.6
    HTML5边玩边学(1)
    《UML和模式应用》读书笔记(二)
    static instance examples
    自己写的虚拟主机管理系统..和大家分享
    一个不错的net的User Interface Components
    Infragistics系列控件
  • 原文地址:https://www.cnblogs.com/zgz345/p/2578110.html
Copyright © 2011-2022 走看看