2010-04-11 19 views
23
में नीचे दबाया जाता है

मैं Android के लिए निम्नलिखित कोड जो एक ध्वनि एक बार एक बटन को क्लिक करने पर करने के लिए ठीक काम करता है:घटना ट्रिगर जब बटन एंड्रॉयड

Button SoundButton2 = (Button)findViewById(R.id.sound2); 
     SoundButton2.setOnClickListener(new OnClickListener() { 

    public void onClick(View v) { 
     mSoundManager.playSound(2); 

    } 
}); 

मेरे समस्या यह है कि मैं ध्वनि तुरंत खेलना चाहते है बटन दबाकर (नीचे स्पर्श करें), जब इसे रिलीज़ नहीं किया जाता है (स्पर्श करें)। इस पर कोई विचार है कि मैं इसे कैसे पूरा कर सकता हूं?

उत्तर

18

शायद OnTouchListener का उपयोग कर रहे हैं? मुझे लगता है कि ऑब्जेक्ट पर टच पंजीकृत करने के लिए मोशनएवेंट के कुछ तरीके होंगे।

button.setOnTouchListener(new OnTouchListener() { 

    @Override 
    public boolean onTouch(View v, MotionEvent event) { 
    // TODO Auto-generated method stub 
    return false; 
    } 
    })) 
+0

प्रतिक्रिया के लिए धन्यवाद। उस कोड का उपयोग करने का प्रयास करते समय निम्न त्रुटियां प्राप्त हुईं: - नया दृश्य टाइप करें। ओन टच लिस्टनर() {} को विरासत सार विधि को लागू करना होगा View.OnTouchListener.onTouch (देखें, मोशनवेन्ट) - विधि पर टच (देखें, मोशनवेन्ट) नया व्यू टाइप करें .ऑन टच लिस्टनर() {} को सुपरक्लास \t विधि पर ओवरराइड करना होगा - मोशनवेन्ट को – codeman

+0

पर हल नहीं किया जा सकता है इसका जवाब संकलक स्तर को 1.6 में बदलना है (http://stackoverflow.com/questions/1678122/must- ओवरराइड-ए-सुपरक्लास-विधि-त्रुटियों-बाद-आयात-ए-प्रोजेक्ट-इन-एक्लिप्स) –

29

आपको यह करना चाहिए: बी बटन है।

b.setOnTouchListener(new OnTouchListener() { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) { 
       if (event.getAction() == MotionEvent.ACTION_DOWN) { 
        mSoundManager.playSound(2); 
        return true; 
       } 

       return false; 
      } 
     }); 
+0

अभी भी इन त्रुटियों को प्राप्त करना: - प्रकार नया व्यू .ऑन टच लिस्टनर() {} को विरासत सार विधि View.OnTouchListener को लागू करना होगा। ऑन टच (देखें, मोशनवेन्ट) - टाइप टू टच (देखें, मोशनवेन्ट) नया प्रकार View.OnTouchListener() {} को सुपरक्लास विधि ओवरराइड करना होगा - मोशनएवेंट को – codeman

+3

पर हल नहीं किया जा सकता है, इन दोनों उत्तरों में प्रदान किया गया कोड सही प्रतीत होता है। 'Android.view.MotionEvent' में एक आयात जोड़ें। 'ऑन टचलिस्टर' के लिए प्रलेखन यहां दिया गया है: http://developer.android.com/reference/android/view/View.OnTouchListener.html – CommonsWare

+5

नाइस, मोशनवेन्ट आयात करने और इस लाइन का उपयोग करने के बाद इसे काम करने के लिए मिला: यदि (ईवेंट। getAction() == मोशनवेन्ट.एक्शन_DOWN) { – codeman

संबंधित मुद्दे