• 点击事件-click,longclick


    今天在修改一个问题的时候,遇到了click,longclick事件触发情况。记录下来。

    代码

            tView.setOnLongClickListener(new OnLongClickListener() {
                
                @Override
                public boolean onLongClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.e("123", "longclick");
                    return true;
                }
            });
            tView.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.e("123", "click");
                    
                }
            });

    打印的log如下

    01-01 13:09:01.324: E/123(8936): longclick

    当我们把longclick返回值修改为false的时候,结果如下

      1 01-01 13:10:51.749: E/123(9284): longclick
      2 01-01 13:10:52.355: E/123(9284): click

    我们可以得到如下结论

    longclick事件能不能触发click时间,主要是看longclick的返回值

    1.return false-继续执行click事件

    2.return true -不再执行click事件

    当然,这个问题还不是绝对的,还有其他情况发生。如下代码

           tView.setOnLongClickListener(new OnLongClickListener() {
                
                @Override
                public boolean onLongClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.e("123", "longclick");
                    //Toast.makeText(MainActivity.this, "hehehe", Toast.LENGTH_LONG).show();
                    Dialog dialog = new Dialog(MainActivity.this);
                    dialog.setTitle("hehe");
                    dialog.setOnCancelListener(new OnCancelListener() {
                        
                        @Override
                        public void onCancel(DialogInterface arg0) {
                            // TODO Auto-generated method stub
                            
                        }
                    });
                    dialog.show();
                    return false;
                }
            });
            tView.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View arg0) {
                    // TODO Auto-generated method stub
                    Log.e("123", "click");
                    
                }
            });

    这时候你会发现,弹出来dialog以后,click并不会执行。感觉应该是焦点传递造成的。

  • 相关阅读:
    Jenkins
    python爬虫
    git分布式版本控制
    CKA考试认证总结
    gitlab-ci 工具链
    gitlab-ci 模板库实践
    gitlab-cicd
    gitlab配置文件gitlab.rb详解
    局部变量表中的slot简述
    JVM系统线程类型
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_click_1569182.html
Copyright © 2020-2023  润新知