View.setClickable无效的问题

原创 2015年11月17日 15:49:20

View.setClickable无效的问题

问题描述

笔者最近做项目时发现button.setClickable(false)无效的问题,现在吧代码抽离出来,如下

button = (Button) findViewById(R.id.button);
button.setClickable(false);
button.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        Toast.makeText(getApplicationContext(),"Click",Toast.LENGTH_SHORT).show();
    }
});

问题分析

笔者查了一下setOnClickListener的源码发现了问题的原因

    /**
     * Register a callback to be invoked when this view is clicked. If this view is not
     * clickable, it becomes clickable.
     *
     * @param l The callback that will run
     *
     * @see #setClickable(boolean)
     */
    public void setOnClickListener(@Nullable OnClickListener l) {
        if (!isClickable()) {
            setClickable(true);
        }
        getListenerInfo().mOnClickListener = l;
    }

也就是说setOnClickable会view的clickable恢复为true的状态。以后只要在setOnClickListener后面使用setClickable即可解决问题

版权声明:本文为博主原创文章,未经博主允许不得转载。

android setClickable 不起作用 没有作用

android setClickable 一定要放在 按扭的setOnClickListener事件之后! 因为setOnClickListener事件会去重写View v,也就是会把setCl...
  • h183288132
  • h183288132
  • 2015年07月27日 15:01
  • 1324

android view setClickable(false)失效

之前是在XML文件里设置onClick响应函数。然后设置之后,设置成setOnclicble(false)发现扔可点击。有人说setOnClickable要设置给其设置了监听器之后,不知道直接在XML...
  • howlaa
  • howlaa
  • 2015年01月13日 17:13
  • 4710

关于setClickable失效问题

今天遇到了这个问题,setClickable失效。button设置了setClickable为false 依然可以点击。 最后发现是代码里面设置setClickable属性需要在设置在set...
  • u010302764
  • u010302764
  • 2016年08月24日 15:11
  • 2006

View的setClickable(boolean clickable)方法

今天工作中用到了Button的setClickable(boolean clickable)方法
  • hello0370
  • hello0370
  • 2014年10月11日 14:19
  • 1701

Sping scope="prototype"属性和Struts保留关键字,揭秘难以找到原因的错误

最近在用SSH三大框架做项目时,发现
  • doublecj
  • doublecj
  • 2014年06月02日 21:20
  • 764

93.AFNetworking manager.requestSerializer.timeoutInterval无效问题 超时无效问题

// 设置超时时间     [manager.requestSerializer willChangeValueForKey:@"timeoutInterval"];     manager.requ...
  • qin_xiaogang
  • qin_xiaogang
  • 2016年06月30日 15:04
  • 1522

EJB3.x: 关于@UniqueConstraint标记无效(不起作用)问题

EJB3.x: 关于@UniqueConstraint标记无效问题在制定Entity Bean时,设置了该实体的@UniqueConstraint限制。但是对该实体Bean进行部署后,并没有在数据库表...
  • yexianyi
  • yexianyi
  • 2009年01月24日 19:33
  • 1147

listview.setSelection ()无效的问题

加.requestFocusFromTouch();  listview..requestFocusFromTouch();
  • bainaaa
  • bainaaa
  • 2015年04月09日 16:38
  • 139

selectableItemBackgroundBorderless 无效的问题

今天遇到了给ImageButton设置点击波纹效果的无效的问题,网上查了查,好像是由于背景原因 ...
  • Aran_biubiu
  • Aran_biubiu
  • 2016年11月17日 11:51
  • 1037

无效的月份问题

问题描述: SQL> select TO_DATE('17-DEC-1980', 'DD-MON-YYYY') from dual; 查询结果: select TO_DATE('17-DEC-...
  • zh2qiang
  • zh2qiang
  • 2011年09月10日 13:45
  • 320
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:View.setClickable无效的问题
举报原因:
原因补充:

(最多只允许输入30个字)