2016-11-02 3 views
1

onTouchEvent() tatsächlich auftreten, wenn wir auf dem Bildschirm berühren. Aber ich möchte dieses Ereignis manuell aufrufen, ohne den Bildschirm zu berühren. Ich möchte diese Methode auf der Basis einer booleschen Variablen, die ich neu in Android bin, nennen, so dass ich nicht genau weiß, ob das möglich ist oder nicht. Vielen Dank im VorausSo rufen Sie touchEvent manuell in Android

+0

Haben Sie etwas dagegen zu erklären, warum Sie wollen? Es könnte einen besseren Weg geben, um das zu erreichen, was Sie anstreben. – Abbas

+0

Sie können ein neues 'MotionEvent' erstellen, indem Sie' MotionEvent.obtain() 'aufrufen. Aber wie @Abbas sagte, könnte es einen besseren Weg geben, um das zu tun, was du willst. –

+0

Eigentlich möchte ich ontouchevent von Android-Gerät remote auf einen Tastendruck eines Remote-Geräts – User

Antwort

1

Überschreiben Sie zuerst die onTouchEventMethod in der Aktivität. dann können Sie diese Methode in jeder Funktion wie dieser aufrufen.

public void callMethod(){ 
onTouchEvent(motionevent) 
} 
0

Kann man so etwas wie dieses

private String TAG = GestureActivity.class.getSimpleName(); 
float initialX, initialY; 


    @Override 
    public boolean onTouchEvent(MotionEvent event) { 
     //mGestureDetector.onTouchEvent(event); 

     int action = event.getActionMasked(); 

     switch (action) { 

      case MotionEvent.ACTION_DOWN: 
       initialX = event.getX(); 
       initialY = event.getY(); 

       Log.d(TAG, "Action was DOWN"); 
       break; 

      case MotionEvent.ACTION_MOVE: 
       Log.d(TAG, "Action was MOVE"); 
       break; 

      case MotionEvent.ACTION_UP: 
       float finalX = event.getX(); 
       float finalY = event.getY(); 

       Log.d(TAG, "Action was UP"); 

       if (initialX < finalX) { 
        Log.d(TAG, "Left to Right swipe performed"); 
       } 

       if (initialX > finalX) { 
        Log.d(TAG, "Right to Left swipe performed"); 
       } 

       if (initialY < finalY) { 
        Log.d(TAG, "Up to Down swipe performed"); 
       } 

       if (initialY > finalY) { 
        Log.d(TAG, "Down to Up swipe performed"); 
       } 

       break; 

      case MotionEvent.ACTION_CANCEL: 
       Log.d(TAG,"Action was CANCEL"); 
       break; 

      case MotionEvent.ACTION_OUTSIDE: 
       Log.d(TAG, "Movement occurred outside bounds of current screen element"); 
       break; 
     } 

     return super.onTouchEvent(event); 
    } 
+0

steuern Kann man es tun, ohne den Bildschirm zu berühren ???? – User

0

benötigen, wenn Sie nur ein Klick-/Tap auf ein View-fälschen wollen (wie ein TextView) und dass View eine ID hat, können Sie tun:

findViewById(**theId**).preformClick(); 

Alternativ, wenn Sie die View als Objekt bereits haben, können Sie einf ly call:

view.performClick(); 
Verwandte Themen