OnTouch और OnClick Android के बीच अंतर


91

क्या कोई अंतर है OnTouchListenerऔर OnClickListener? मैं प्रोग्रामिंग के दृष्टिकोण से नहीं पूछ रहा हूं, लेकिन उपयोगकर्ता अनुभव के दृष्टिकोण से।

कौन सा उपयोग करना बेहतर है?

क्या हमें दोनों को लागू करने की आवश्यकता है?

जवाबों:


101

कौन सा उपयोग करना बेहतर है?

यह वास्तव में आपकी आवश्यकता पर निर्भर करता है।

onTouchआपको मोशन इवेंट देता है। इस प्रकार, आप बहुत सी फैंसी चीजें कर सकते हैं क्योंकि यह आपको आंदोलन की अलग स्थिति में मदद करता है। कुछ लोगों का नाम बताने के लिए:

  • ACTION_UP
  • ACTION_DOWN
  • ACTION_MOVE

वे सामान्य क्रियाएं हैं जो हम आमतौर पर इच्छा परिणाम प्राप्त करने के लिए कार्यान्वित करते हैं जैसे कि स्क्रीन पर दृश्य खींचना।

दूसरी ओर, onClickआपको बहुत कुछ नहीं देता सिवाय इसके कि कौन सा उपयोगकर्ता इंटरैक्ट करता है। onClickएक पूरी घटना है जिसमें ध्यान केंद्रित करना, दबाव डालना और छोड़ना शामिल है। इसलिए, आपका इस पर बहुत कम नियंत्रण है। एक तरफ यह लागू करने के लिए बहुत सरल है।

क्या हमें दोनों को लागू करने की आवश्यकता है?

यह आवश्यक नहीं है जब तक आप अपने उपयोगकर्ता के साथ गड़बड़ नहीं करना चाहते। यदि आप केवल साधारण क्लिक इवेंट चाहते हैं, तो जाएं onClick। यदि आप क्लिक से अधिक चाहते हैं, तो जाएं onTouch। दोनों को करने से प्रक्रिया जटिल हो जाएगी।

उपयोगकर्ता की दृष्टि से, यह ध्यान देने योग्य है यदि आप onTouchध्यान से देखने के लिए लागू करते हैं onClick।


3
यदि आपको कुछ नियंत्रण की आवश्यकता है, तो ऑनटच के लिए जाएं। अधिकांश मामलों के लिए onClick करेंगे। PH7 का उत्तर देखें।
— ड्रग्स

मैं अभी भी यह पता लगाने की कोशिश कर रहा हूं कि किसका उपयोग करना है। अगर मेरे पास 4 विचार हैं, जिनमें से 3 के लिए क्लिक और स्वाइप दोनों की आवश्यकता होती है जबकि 4 केवल एक क्लिक पर। मुझे पता है कि मैं पहले 3 दृश्यों के लिए केवल क्लिक या स्वाइप के रूप में ऑनटच का उपयोग कर सकता हूं लेकिन 4 के बारे में क्या? क्या मुझे एक दृश्य के लिए onClick लागू करना चाहिए या केवल onTouch का उपयोग करना चाहिए क्योंकि यह पहले से ही कहा जाता है ..?
— cjayem13

ध्यान दिया जाना चाहिए कि कुछ परिणामों को प्राप्त करने के लिए ऑनटच का उपयोग करना आवश्यक हो सकता है, जिस स्थिति में उपयोगकर्ता के दृष्टिकोण को नुकसान पहुंचाया जाना चाहिए। FE, यदि आप सॉफ्ट कीबोर्ड को दिखाने से रोकना चाहते हैं, तो आप अपना स्वयं का प्रदान कर सकते हैं, यह onTouch के माध्यम से होना चाहिए। TIL ऑनक्लिक यह नहीं करेगा।
— चीफट्वोकेन्सिल्स

24

"टच" ईवेंट तब होता है जब कोई अपनी उंगली स्क्रीन पर डालता है। यह उंगली के नीचे, नीचे, खींचें और ऊपर के पूरे आंदोलन में कहा जाता है। एक "क्लिक" भी स्क्रीन से आने की जरूरत नहीं है। यह कोई व्यक्ति कुंजी दर्ज कर सकता है।

उपयोग करें OnTouchListenerजब आप स्क्रीन पर किसी की उंगली से घटनाओं को प्राप्त करना चाहते हैं।

OnClickListenerजब आप क्लिकों का पता लगाना चाहते हैं तो उपयोग करें ।


मैंने कुछ डेवलपर को बटन के लिए टच इवेंट का उपयोग करते हुए देखा है, उसका कारण क्या होगा? मैंने फोन पर परीक्षण नहीं किया है, लेकिन क्या कोई प्रदर्शन सुधार हुआ है?
— निक्षित पटेल

1
@NixitPatel उनके स्रोत को देखे बिना कोई अच्छा कारण दिमाग में नहीं आता।
— थॉमस डिग्नन

सच है, लेकिन अब मुझे मेरा जवाब मिला ... आप लोगों और कुछ कण दृष्टिकोण की मदद से। चिंता करने की कोई जरूरत नहीं है, पूछने के लिए धन्यवाद
— Nixit Patel

9
  • onClickListener जब भी किसी दृश्य के लिए एक क्लिक ईवेंट उठाया जाता है, उदाहरण के लिए कहें: बटन, इमेजबटन के लिए ईवेंट पर क्लिक करें।

  • onTouchListener का उपयोग तब किया जाता है जब भी आप टच प्रकार की कार्यक्षमता को लागू करना चाहते हैं, उदाहरण के लिए कहें यदि आप स्क्रीन के सह-निर्देश प्राप्त करना चाहते हैं जहां आप बिल्कुल स्पर्श करते हैं।

आधिकारिक डॉक्टर से, दोनों के लिए परिभाषा है:

  • onClickListner: किसी दृश्य पर क्लिक करने पर कॉलबैक के लिए इंटरफ़ेस परिभाषा।
  • onTouchListener: कॉलबैक के लिए इंटरफ़ेस की परिभाषा को तब लागू किया जाता है जब किसी टच इवेंट को इस दृश्य में भेजा जाता है। स्पर्श ईवेंट को दृश्य को दिए जाने से पहले कॉलबैक लागू किया जाएगा।

1
मैंने कुछ डेवलपर को बटन के लिए टच इवेंट का उपयोग करते हुए देखा है, उसका कारण क्या होगा? मैंने फोन पर परीक्षण नहीं किया है, लेकिन क्या कोई प्रदर्शन सुधार हुआ है?
— निक्षित पटेल

8

ऑनक्लिक ईवेंट्स पर ऑनटच इवेंट का उपयोग करने का एक अच्छा कारण उपयोगकर्ता क्लिक पर तेजी से प्रतिक्रिया प्राप्त करना है। जहां ऑन्कलिक घटना आवश्यक कार्रवाई के साथ प्रतिक्रिया करने और आगे बढ़ने में देरी करती है। उच्च प्रदर्शन करने वाले मोबाइल वेब ऐप्स को वितरित करने के लिए ontouch इवेंट बेहतर हैं।


2

OnClickListener - एक मूल उद्देश्य के लिए उपयोग किया जाता है, जब हमें बस एक उपयोगकर्ता से एक क्लिक की आवश्यकता होती है अर्थात, बटन पर क्लिक करें, स्क्रीन पर कोई ड्रैग या इशारे नहीं

OnTouchListenerमूल रूप से OnClickListener की तुलना में अधिक ठीक-ठीक नियंत्रण है। यह स्क्रीन पर एक प्रेस / रिलीज पर प्रदर्शन और कार्रवाई करता है यह उपयोगकर्ता को स्क्रीन पर मूव, डाउन-टच, अप-टच, फिंगर ड्रैग या किसी भी मूवमेंट जेस्चर के संयोजन की अनुमति देता है।


1

ऑनटच का उपयोग करना पसंद करते हैं। आपको एक उदाहरण देते हैं: जब आपके पास एक ViewPager और एक TextView होता है। यदि आप textOn पर setOnClickListener को लागू करते हैं, तो आप जब आप टेक्स्ट व्यू पर टच / स्वाइप करेंगे, तो ViewPager को स्वाइप नहीं कर पाएंगे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.