2011-04-23 14 views
20

मैं एंड्रॉइड में TouchRelease ईवेंट कैप्चर करने की कोशिश कर रहा हूं। मैंने देखा है कि event.getAction() कार्रवाई प्रकार देता है। लेकिन onTouchEvent के अंदर यह हमेशा ACTION_DOWN क्रिया देता है।
क्या आप जानते हैं कि टच रिलीज ईवेंट कैप्चर कैसे करें।एंड्रॉइड में टच रिलीज विधि

public boolean onTouchEvent(MotionEvent event) { 
    Log.d(TAG,""+event.getAction()); 
    return super.onTouchEvent(event); 
} 

उत्तर

56

आप ACTION_UP है: http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_UP

View view = new View(); 

view.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View view, MotionEvent event) { 
    if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) { 
     Log.d("TouchTest", "Touch down"); 
    } else if (event.getAction() == android.view.MotionEvent.ACTION_UP) { 
     Log.d("TouchTest", "Touch up"); 
    } 
    return true; 
    } 
} 
+4

'ACTION_CANCEL' – Aleadam

+0

का मूल्यांकन करने पर विचार करें मैंने देखा कि ACTION_UP नामक कुछ चीज़ है। लेकिन उपर्युक्त विधि से यह ACTION_UP स्थिति के साथ कभी भी ट्रिगर नहीं करता है। क्या आपको यह पाने के लिए कोई और तरीका पता है? – dinesh707

+3

'ACTION_UP' सही 'मोशनवेन्ट' है। शायद घटना किसी अन्य दृश्य से खाया जाता है? – Aleadam

7
public boolean onTouchEvent(MotionEvent event) { 
     Log.d(TAG,""+event.getAction()); 
     return true; // Required for recieving subsequent events (ACTION_MOVE, ACTION_UP) 
} 
1

मैं कक्षा SurfaceView के साथ एक ही समस्या थी। यहां बताया गया है कि मैंने इसे कैसे ठीक किया: आपके व्यू की लंबी क्लिक करने योग्य संपत्ति को सक्षम करने के बाद (setLongClickable (true) के माध्यम से), यह काम करना चाहिए।

+0

कूल मुझे परेशानी से बचाया! – Reek

0
view.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View view, MotionEvent event) { 
     if(event.getAction() == MotionEvent.ACTION_UP) { 
      // release 
      return false; 
     } else if(event.getAction() == MotionEvent.ACTION_DOWN) { 
      // pressed 
      return true; 
     } 
     return super.onTouchEvent(event); 
    } 
संबंधित मुद्दे