2011-06-08 42 views
11

मेरे पास मेरी गतिविधि में निम्न कोड है। मेरे एक्सएमएल में, वीडियो व्यू रैखिक लेआउट के अंदर है। हालांकि, जब दृश्य क्लिक किया जाता है, तो onTouchListener कभी आग नहीं लगाता है। मैंने onTouchListener को vvLive में बदलने की कोशिश की लेकिन उसने कुछ भी नहीं किया। मैंने onTouchListener को onClickListener पर बदलने की भी कोशिश की, लेकिन कुछ भी नहीं। किसी को पता है कि श्रोता फायरिंग क्यों नहीं कर रहा है? धन्यवाद।onTouchListener काम नहीं कर रहा

 private VideoView vvLive; 
     LinearLayout linearLayoutLiveVideo; 

     linearLayoutLiveVideo.setOnTouchListener(new OnTouchListener(){ 
      public boolean onTouch(View v, MotionEvent event){ 
       Log.d(TAG, "onTouch entered"); 
       if(event.getAction() == MotionEvent.ACTION_UP) { 
        Log.d(TAG, "ACTION_UP"); 

       } 
       return false; 
      } 
     }); 

संपादित: मैं कोड का एहसास ऊपर वास्तव में काम करता है। ग्रहण में कुछ लॉगबैट गड़बड़ कर रहा था। ग्रहण को पुनरारंभ करने के बाद, लॉगकैट पहले लॉग "ऑन टच दर्ज" प्रिंट करता है। हालांकि, "ACTION_UP" मुद्रित नहीं किया जा रहा था। मैंने मोशनएवेंट को MotionEvent.ACTION_DOWN और लॉगकाट प्रिंट में बदल दिया। ACTION_DOWN क्यों काम करता है लेकिन ACTION_UP नहीं करता है?

+0

क्या ये आपकी गतिविधियों में प्रदर्शित किए जा रहे हैं? – dmon

+0

लेआउट सेट की "clicable" संपत्ति को सही पर सेट करता है? – woodshy

+0

@woodshy जोड़ने योग्य क्लिक = सही कुछ भी नहीं किया – yellavon

उत्तर

30

ACTION_UP अपने श्रोता के लिए भेजा जा रहा है कभी नहीं है, क्योंकि आप रिटर्न फाल्स और वजह नहीं घटना "उपभोग" से करते हैं। सत्य लौटें और आपको प्रारंभिक ईवेंट (ACTION_DOWN) के साथ-साथ सभी बाद वाले (ACTION_MOVE और फिर ACTION_UP) मिलेंगे।

1

इस तरह अपने कोड को संशोधित करें और प्रयास करें:

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    Log.d(TAG, "onTouch entered"); 
    if(event.getAction() == MotionEvent.ACTION_UP) { 
     Log.d(TAG, "ACTION_UP"); 
     return super.onTouchEvent(event); 
    else 
     return false; 
} 
+0

setOnTouchListener के बारे में क्या। क्या मैं अभी भी इसका उपयोग कर सकता हूं? – yellavon

+0

हां आपको उस लाइन का उपयोग करना होगा। जैसा कि मैंने दिया है और इसे आजमाएं नीचे दी गई रेखाओं को बदलें। –

+1

'त्रुटि: प्रकार नया व्यू .ऑन टच लिस्टनर() {} को विरासत में अमूर्त विधि को लागू करना होगा View.OnTouchListener.onTouch (देखें, मोशनवेन्ट)'। ऐसा लगता है कि मैं टचलिस्ट के साथ टचलिस्ट पर उपयोग नहीं कर सकता? – yellavon

0

मैं चेहरे में यह समस्या है और समाधान है: -

1-में अपने xml VideoView को

एंड्रॉयड followin विशेषता निर्धारित: क्लिक करने योग्य = "true"

में 2- बस अपने कोड सेट सेटऑनक्लिक लिस्टनरो वीडियो व्यू और यह आकर्षण की तरह काम करेगा:

videoView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     Intent intent=new Intent(CinemaDetailsActivity.this , FullScreenPlayerActivity.class); 
     intent.putExtra("url" , getIntent().getStringExtra("url")); 
     startActivity(intent); 
    } 
}); 
संबंधित मुद्दे