Event Handling in Android

Event Handling in Android – पिछले Chapter में हमने एक Android App बनाने के लिए सबसे पहले व सबसे जरूरी Concept, विभिन्‍न प्रकार के Layouts के बारे में विस्‍तार से Discuss किया ताकि आप जब भी कोई Android App Create करने के बारे में सोंचे, तो आपको पता रहे कि किस तरह की जरूरत को पूरा करने हेतु किसी Specific Activity के लिए Best Appropriate Layout कौनसा होगा। यानी आप अपने Android App की प्रत्‍येक Activity के लिए Best Possible Layout का चुनाव कर सकें।

हालांकि अभी तक हमने विभिन्‍न प्रकार के Layouts को ठीक से समझने के लिए हमने कई Examples Create किए लेकिन उनमें से किसी भी Example App के User Interface पर स्थित कोई भी TextView, EditText या Button Control किसी तरह का कोई Action Perform नहीं करते यानी किसी Action के लिए कोई Response नहीं देते।

उदाहरण के लिए Button को Click करने पर कोई Output Return नहीं होता अथवा EditText में गलत Name या Email Enter करने पर कोई Data Validation नहीं होता जो इस बात की जानकारी दे कि Input किया गया Name या Email Address सही नहीं है।

जबकि किसी भी Graphical User Interface का तभी कोई औचित्‍य होता है, जबकि वो किसी न किसी तरह के Action/Event को Response/Handle करते हुए किसी न किसी तरह का Output Generate करे। Modern Programming की भाषा में इसी GUI Programming को  Event Driven Programming के नाम से जाना जाता है।

इसलिए सबसे पहले आपको Java के Event Driven Programming Model को ठीक से समझना जरूरी है, तभी आप अपने किसी भी Android App को Life दे सकते हैं यानी Useful Responsive Android App Create कर सकते हैं और इस Chapter में हम विभिन्‍न प्रकार के Simple Examples द्वारा इसी Programming Model को ठीक से समझने की कोशिश करेंगे ताकि आप बेहतर तरीके से समझ सकें कि Android Framework के अन्‍तर्गत Graphical User Interface के लिए Event Handling Mechanism को किस-किस तरह से Implement किया जा सकता है।

Event Handling Mechanism

हालांकि यदि आप Java के AWT/Swing के UI ControlsEvent Handling Mechanism को जानते हैं, तो Responsive Android App Create करने के लिए आपको कुछ ज्‍यादा सीखने की जरूरत नहीं पढ़ेगी क्‍योंकि Java का Event Handling Mechanism एक Standard Approach Follow करता है जो कि Java 1.2 से लेकर आज तक एक समान है।

इसी Standard Event Handling Mechanism के आधार पर ही Android SDK किसी Event Handler को कुल 5 तरीकों से Define करने की सुविधा देता है और जब एक Android Developer कोई Android App Create करता है, तो उसे Different Situation के अनुसार इन्‍हीं पांच में से किसी एक Best Possible तरीके को चुनते हुए अपना Event Handler Create करना होता है।

जब भी कोई UI View Control कोई Event Trigger करता है, तो Android App तब तक कोई Response नहीं देता, जब तक कि वह उस Event को Listen नहीं करता। किसी UI View Control ने कोई Event Fire किया है, इस बात को Detect करने के लिए एक ऐसे Class का Object Create किया जाता है, जिसमें उस Fire होने वाले Event को Listen करने के लिए Appropriate Listener Interface को Implement  किया गया होता है और उस Newly Created Object को उस View UI Control को Assign कर दिया जाता है।

परिणामस्‍वरूप जैसे ही वह UI View Control कोई Event Fire करता है, उसके साथ Assigned Listener Object Notify हो जाता है। यानी Listener को पता चल जाता है कि UI View Control ने कोई Event Fire किया है और जैसे ही Listener Notify होता है, Listener Class में Implement किया गया Appropriate Event Handler Method Execute हो जाता है।

सरलतम शब्‍दों में कहें तो Listener Object, Trigger होने वाले Event व Event के Response में Execute होने वाले Callback Event Handler Method के बीच Intermediator का Role Play करता है। फलस्‍वरूप कोई भी UI View Control जैसे ही कोई Specific Event Fire करता है, उसका Listener Object Notify हो जाता है और Fire होने वाले Event को Response करने के लिए उसके साथ Associate किए गए किसी Specific Callback Event Handler Method को Execute कर देता है।

इस पूरी प्रक्रिया को यदि एक Simple से Example द्वारा समझें, तो onClick Event एक बहुत ही Common Event है और किसी भी Android App में Add किए जाने वाले किसी भी UI View Control पर जब User Click या Tap करता है, तो ये Event Fire होता है।

किसी भी UI View Control द्वारा जब onClick Event Fire होता है तो इस Event को उस Class का Object Listen करके Notify होता है, जिसमें OnClickListener Interface को Implement किया गया होता है यानी Fire होने वाले onClick Event के Callback Event Handler को Define किया गया होता है। फिर setOnClickListener() Method का प्रयोग करते हुए उस Notify होने वाले Listener Object को उस View को Assign कर दिया जाता है, जिसने Event Fire किया होता है।

इस प्रकार से Event Fire करने वाले UI View Control व Listener Interface को Implement करने वाले Event Handler के बीच एक Connection बन जाता है। परिणामस्‍वरूप सम्‍बंधित UI View Control जब भी onClick Event Fire करता है, उससे Associated Listener Class का Event Handler Method Execute हो जाता है और Exactly इसी प्रक्रिया को किसी भी प्रकार के Event को Handle करने के लिए Use किया जाता है।

Input Events and Event Handler Callbacks

जब User किसी Android App के साथ Interact करता है तब विभिन्‍न UI View Controls द्वारा Fire होने वाले विभिन्‍न प्रकार के Input Evensts को Capture करने के लिए Android Framework कुल 5 Different तरीके Provide करता है जिनके माध्‍यम से हम उन Events को Response करने के लिए Event Handler Callbacks Implement कर सकते हैं।

लेकिन जब हम हमारे Android App के User Interface के साथ किए गए User Interaction के कारण Fire होने वाले Events के बारे में बात करते हैं, तब सबसे पहले हमें किसी Specific View Object द्वारा Fire होने वाले Event को Capture करना होता है और ऐसा करने की सुविधा हमें View Class Provide करता है।

हम हमारे Android App के Layout में जितने भी UI View Controls Use करते हैं, वे सभी किसी न किसी View Class के Object होते हैं और प्रत्‍येक View Class कई Public Callback Methods के माध्‍यम से किसी न किसी UI Event को Handle करने में सक्षम होता है यानी Fired Event के Response में Execute होता है। इन Public Callback Methods को Android Framework द्वारा तब Call किया जाता है जब उससे Assocaited UI View Control, Action के रूप में वह Event Fire करता है जिसे उस Callback Method द्वारा Handle किया जाना है।

उदाहरण के लिए जब किसी Android App के Layout पर Placed Button (UI View Control) Object को Touch किया जाता है, तो Android Framework द्वारा उस Button के लिए onTouchEvent() नाम का Callback Method Invoke किया जाता है।

लेकिन प्रत्‍येक UI Control की View Class को Extend करके उसके Public Callback Methods के माध्‍यम से Assocaited Event को Handle करना Practically Possible नहीं होता। इसीलिए प्रत्‍येक View Class में Nested Interfaces का एक Collection भी होता है जिसमें उस UI View Control द्वारा Fire किए जाने वाले Events को Handle करने से सम्‍बंधित Public Callback Methods का Declaration होता है।

विभिन्‍न View Classes में Nested इन Interfaces के Collection को Event Listener कहते हैं जिन्‍हें किसी भी Class में आसानी से Implement किया जा सकता है और UI View Control से Fire होने वाले Events को Response करने के लिए Android Platform द्वारा इन्‍हीं Implemented Classes में Define किए गए Public Callback Methods को Execute या Invoke किया जाता है।

सरल शब्‍दों में कहें तो जब User हमारे Android App के User Interface से Interact करता है, तब Layout के विभिन्‍न UI View Controls द्वारा Fire होने वाले विभिन्‍न Events को Capture करने और फिर उनके Handler Callback Methods को Execute करके उन्‍हें Response करने का Mechanism इन्‍हीं Event Listeners द्वारा प्राप्‍त होता हैं।

हालांकि User Interaction के कारण Fire होने वाले ज्‍यादातर प्रकार के Events को Listen करने के लिए इन्‍हीं Event Listeners का प्रयोग किया जाता है, लेकिन कई बार ऐसी जरूरत भी पड़ती है, जब हमें कोई Custom UI View Control Create करने के लिए किसी View Class को Inherit करते हुए उसकी Functionalities को Extend करना होता है।

इस प्रकार की स्थिति में हम हमारी Custom UI Control की View Class में Event Handlers का प्रयोग करते हुए Default Event Behaviors को Define कर सकते हैं, जो कि Android Framework के अन्‍तर्गत Events को Handle करने के लिए Use किए जाने वाले 5 तरीकों में से ही एक तरीका है और इसके बारे में हम आगे विस्‍तार से जानेंगे लेकिन पहले हम Event Listeners को थोड़ा और गहराई से समझ लेते हैं जो कि Android Framework के अन्‍तर्गत Event Handling का मूल आधार है।

Buy this eBook to read more about “Event Listeners”

  • onClick() Callback Method
  • onLongClick() Callback Method
  • onFocusChange() Callback Method
  • onKey() Callback Method
  • onTouch() Callback Method
  • onCreateContextMenu() Callback Method

Android in Hindi - BccFalna.comये Article इस वेबसाईट पर Selling हेतु उपलब्‍ध EBook Android in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी है, तो निश्चित रूप से ये EBook भी आपके लिए काफी उपयोगी साबित होगी।

Android in Hindi | Page: 628 | Format: PDF

BUY NOW GET DEMO REVIEWS