【问题标题】:How to single And Double Click used in imagebutton for Android如何在 Android 的 imagebutton 中单击和双击
【发布时间】:2014-04-17 17:41:22
【问题描述】:

我想在使用的单击和双击中按 setOnClicklister 方法。如何在 android 中实现。我想调用单击一个调用的操作并双击然后调用 web 服务。我想单击然后对话框打开。我的代码在下面。

谢谢!!!!

home_big_img.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub

                    showCustomDialog(list.get(position).image);

                }

            });

【问题讨论】:

    标签: android button imagebutton double-click


    【解决方案1】:

    你可以编写一个小逻辑来完成你的任务:

    在第一次单击时获取当前系统时间并将其保存在全局或静态变量中。在第二次单击时,再次花时间并查看与之前时间的差异(修复您的时间差异)。根据这种差异,尝试确定是单击还是双击。

    这个链接的逻辑是:

    Differentiate Single click and double click of a imageView in android

    【讨论】:

      【解决方案2】:

      为此,在函数外部创建静态变量,并在 onclick 函数内部将其递增,如果按下双击,则再次初始化为零

      static int count=0;
      
      home_big_img.setOnClickListener(new View.OnClickListener() {
      
                      @Override
                      public void onClick(View v) {
                          // TODO Auto-generated method stub
                          count++;
                            if(count==1){
                          showCustomDialog(list.get(position).image);
                            }
                      //double click
                       if(count==2){
                            //double function() 
                            count==0;
                            }
                                }
                               });
      

      【讨论】:

      • 我使用了这个代码 count==0;但在令牌“==”上出现语法错误,AssignmentOperator 无效;
      • 我认为你需要使用 = 来分配和 == 在 if 语句中进行检查
      【解决方案3】:

      您只需在 Activity 中使用此功能...

      ScaleGestureDetector mScaleDetector;
      
      mScaleDetector = new ScaleGestureDetector(context, new ScaleListener());
      

      此代码在您的 Activity On create 中提及...

      button.setOnTouchListener(new OnTouchListener() {
      
              @Override
              public boolean onTouch(View v, MotionEvent event) {
      
                      mScaleDetector.onTouchEvent(event);
      
      
                      switch (event.getAction()) {
                      case MotionEvent.ACTION_DOWN:                   
      
                      case MotionEvent.ACTION_MOVE:                   
                  }
          }
      }
      

      在创建之外 ....

        public class singleTablistener implements OnDoubleTapListener,OnGestureListener {
      
          @Override
          public boolean onDoubleTap(MotionEvent e) {
      
              return false;
          }
      
          @Override
          public boolean onDoubleTapEvent(MotionEvent e) {        
      
              return false;
          }
      
          @Override
          public boolean onSingleTapConfirmed(MotionEvent e) {
      
          }
      
          @Override
          public boolean onDown(MotionEvent e) {          
              return false;
          }
      
          @Override
          public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
                  float velocityY) {          
              return false;
          }
      
          @Override
          public void onLongPress(MotionEvent e) {                    
          }
      
          @Override
          public boolean onScroll(MotionEvent e1, MotionEvent e2,
                  float distanceX, float distanceY) {         
              return false;
          }
      
          @Override
          public void onShowPress(MotionEvent e) {    
          }
      
          @Override
          public boolean onSingleTapUp(MotionEvent e) {           
              return false;
          }
      
      
      }
      

      一切顺利...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-11
        • 1970-01-01
        相关资源
        最近更新 更多