2010-12-29 9 views
180

एंड्रॉइड में कोड का उपयोग करके मैं बटन क्लिक ईवेंट कैसे ट्रिगर कर सकता हूं? जब कोई अन्य घटना होती है तो मैं प्रोग्राम को प्रोग्रामेटिक रूप से क्लिक करना चाहता हूं।बटन का अनुकरण कैसे करें कोड का उपयोग कर क्लिक करें?

एक ही समस्या मैं

public void onDateSelectedButtonClick(View v){ 
    /*Something Alarm Management 
    http://www.java2s.com/Code/Android/Core-Class/Alarmdemo.htm 
    copied code from this site*/ 
} 

बटन कोड का सामना कर रहा हूँ:

<Button 
    android:onClick="onDateSelectedButtonClick" 
    android:text="Set notification for this date" /> 

लेकिन मैं OnLoadLayout OnClickEvent

बिना
+0

क्या आप समस्या निर्दिष्ट कर सकते हैं? तुम उसे क्यों चाहते हो? क्या आप निष्पादित करने के लिए कुछ कोड ट्रिगर करना चाहते हैं? –

+0

हां, मैं बटन क्लिक के लिए निष्पादित कोड को ट्रिगर करना चाहता हूं। – sam

उत्तर

391

वहाँ एक बेहतर तरीका है कि समारोह कॉल करना चाहते हैं।

View.performClick(); 

http://developer.android.com/reference/android/view/View.html#performClick()

यह आपके सभी समस्याओं का उत्तर देना चाहिए। बटन, स्पिनर, आदि सहित इस समारोह, विरासत में हर देखें

+1

लेकिन एंड्रॉइड के बैक बटन के लिए दृश्य क्या है? –

+0

बैक बटन दृश्य कैसे प्राप्त कर सकते हैं? –

+3

आपके फोन पर बैक बटन के लिए कोई "व्यू" नहीं है। आपको उन बटन प्रेस प्राप्त करने के लिए प्रमुख श्रोताओं का उपयोग करने की आवश्यकता है। यह पूरी तरह से एक अलग मुद्दा है। – moonlightcheese

45

बस स्पष्ट करने के लिए क्या कहा moonlightcheese: एंड्रॉयड में कोड के माध्यम से एक बटन क्लिक करें घटना ट्रिगर करने के लिए निम्न प्रदान करें:

buttonName.performClick(); 
6

Android के callOnClick() (added in API 15) कभी-कभी performClick() से मेरे अनुभव में बेहतर विकल्प हो सकता है। यदि किसी उपयोगकर्ता के पास चयन ध्वनियां सक्षम हैं, तो performClick() उपयोगकर्ता को लगातार दो अलग-अलग चयन ध्वनियां सुन सकता है जो कुछ हद तक एक दूसरे के शीर्ष पर स्तरित होते हैं जो झटकेदार हो सकते हैं। (उपयोगकर्ता के पहले बटन क्लिक के लिए एक चयन ध्वनि, और फिर दूसरे बटन के OnClickListener के लिए एक अन्य कोड जिसे आप कोड के माध्यम से कॉल कर रहे हैं।)

2

यदि आप sender तर्क का उपयोग नहीं करते हैं, तो बटन हैंडलर कार्यान्वयन को अलग करने के लिए क्यों न करें कार्य करें, और जहां चाहें वहां से कॉल करें (बटन हैंडलर से और दूसरी जगह से)।

वैसे भी, यह एक बेहतर और क्लीनर डिज़ाइन है - एक कोड जिसे बटन हैंडलर पर कॉल करने की आवश्यकता है और कुछ अन्य स्थानों से अपने कार्य के लिए दोबारा प्रतिक्रिया दी जानी चाहिए। इसके अलावा यह आपको एप्लिकेशन लॉजिक कोड से यूआई हैंडलिंग को अलग करने में मदद करेगा। आपके पास फ़ंक्शन में एक अच्छा नाम भी होगा, न कि केवल DateSelectedButtonClick() पर।

4

बस कोड के इस सरल रेखा बारे में: -

button.performClick(); 

जहां बटन बटन वर्ग के संदर्भ चर रहा है और परिभाषित प्रकार है: -

private Button buttonToday ; 
buttonToday = (Button) findViewById(R.id.buttonToday); 

यह है कि।

10

आप इसे इस तरह

private Button btn; 
btn = (Button)findViewById(R.id.button2); 
btn.performClick(); 
1

API15 के साथ शुरू कर सकते हैं, आप भी callOnClick() कि सीधे जुड़ी दृश्य OnClickListener फोन का उपयोग कर सकते हैं। PerformClick() के विपरीत, यह केवल श्रोता को कॉल करता है, और किसी भी क्लिक करने योग्य क्रियाएं नहीं करता है जैसे अभिगम्यता ईवेंट की रिपोर्ट करना।

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