2016-09-06 3 views
0

Ich versuche, einen Teil einer Anwendung zu implementieren, um ein benutzerdefiniertes Dialogfeld zu öffnen, wenn der Benutzer einen Doppelklick verwendet.Gleichzeitiges Verwenden von DoubleClick und LongClick

Das Implementierungsziel besteht darin, OnTouchClick zu erhalten, wenn Long Click ausgeführt wird und Benutzer die Ansicht verschieben können.

Jetzt, wenn wir konfrontiert Action Up und die Benutzer die Ansicht fallen, ist es False Wert zurückgegeben, so wieder Double Click zu verwenden. Aber das Problem ist danach Double Click ist nicht verfügbar, auch wenn ich False Wert zurückgeben.

namet = (TextView) findViewById(R.id.namet); 
     namet.setOnTouchListener(new OnSwipeTouchListener(Main2Activity.this) { 

      @Override 
      public void onClick() { 
       super.onClick(); 
      //  logo1(); 
       // your on click here 
      } 

      @Override 

      public void onDoubleClick() { 
       super.onDoubleClick(); 
       MaterialDialog md =new MaterialDialog.Builder(Main2Activity.this) 


         .customView(R.layout.alertlogo, true) 

         .cancelable(true) 
         .show(); 

      } 

      @Override 
      public void onLongClick() { 



       namet.setOnTouchListener(new View.OnTouchListener() { 
        @Override 
        public boolean onTouch(View view, MotionEvent event) { 

         switch (event.getActionMasked()) { 
          case MotionEvent.ACTION_DOWN: 
           namet.setTextColor(Color.rgb(51, 51, 255)); 
           xCoOrdinate = view.getX() - event.getRawX(); 
           yCoOrdinate = view.getY() - event.getRawY(); 

           break; 
          case MotionEvent.ACTION_MOVE: 

           // isMoving = true; 
           view.animate().x(event.getRawX() + xCoOrdinate).y(event.getRawY() + yCoOrdinate).setDuration(0).start(); 
           break; 

          case MotionEvent.ACTION_UP: 



           return false; 


          default: 
           return false; 
         } 
         return true; 
        } 
       }); 




       // your on onLongClick here 
      } 

Antwort

0

Ich denke, Sie müssen sich das example ansehen.

Sie hatten Methoden für longpress und doubleTap (DoubleClick)

@Override 
    public void onLongPress(MotionEvent event) { 
     gestureText.setText("onLongPress"); 
    } 

    @Override 
    public boolean onScroll(MotionEvent e1, MotionEvent e2, 
      float distanceX, float distanceY) { 
     gestureText.setText("onScroll"); 
     return true; 
    } 

    @Override 
    public void onShowPress(MotionEvent event) { 
     gestureText.setText("onShowPress"); 
    } 

    @Override 
    public boolean onSingleTapUp(MotionEvent event) { 
     gestureText.setText("onSingleTapUp"); 
     return true; 
    } 

    @Override 
    public boolean onDoubleTap(MotionEvent event) { 
     gestureText.setText("onDoubleTap"); 
     return true; 
    } 
Verwandte Themen