zoukankan      html  css  js  c++  java
  • 点击事件-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并不会执行。感觉应该是焦点传递造成的。

  • 相关阅读:
    Oracle:SQL语句--撤销用户权限
    Oracle:SQL语句--给用户赋权限
    RSTP端口状态迁移过程详解
    LSB算法分析与实现
    工厂方法模式
    Ceasar
    区域性名称和标识符
    Packet Tracer网络模拟实验实记
    H3C-OSPF
    H3C-RIP
  • 原文地址:https://www.cnblogs.com/zhangshuli-1989/p/zhangshuli_click_1569182.html
Copyright © 2011-2022 走看看