2013-03-31 8 views
5

एंड्रॉयड में न तो कृपया ध्यान करता है, तो बेवकूफ सवाल लेकिन कृपया मैं अपने भ्रम की स्थिति स्पष्ट करने के लिए की जरूरत है .. एक बटन परएंड्रॉयड देखें पैरामीटर के लिए OnClickListener विधि

OnClickListener के लिए मैं main.xml

<Button 
    android:id="@+id/button1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentTop="true" 
    android:text="Button" 
    android:onClick="clicked" 
/> 

में यह रखा है और जावा फ़ाइल में मैं

public void clicked(View v) 
    { 
    // my code here 
    } 

किया मेरे सवाल का कारण है कि हम View view पारित करने के लिए जब हमफोन की जरूरत हैविधि।

उत्तर

9

AFAIK,

क्योंकि विधि onCreate में बटन प्राप्त किए बिना कहा जाता है। और उस बटन तक पहुंचने के लिए आपको एक दृश्य देखने की आवश्यकता है।

i.e देखें वी आपके बटन दृश्य का प्रतिनिधित्व करता है।

यदि आप बटन तक पहुंचना चाहते हैं, तो मान लें कि आप इसे टेक्स्ट प्राप्त करना चाहते हैं। findViewbyId का उपयोग कर बटन प्राप्त किए बिना आप इसे कैसे प्राप्त करते हैं? आप आप बटन का उपयोग करना चाहते हैं तो इस

Button b=(Button)v; 

की तरह अपने बटन मिल जाएगा पाठ

String text=b.getText(); 

तो यहां हम findViewById

का उपयोग कर सामान्य में से बटन नहीं मिल रहा है प्राप्त करने के लिए आपको उस वस्तु को प्राप्त करने की आवश्यकता है। लेकिन यहां आप इसे देखने से प्राप्त करेंगे। findViewById का उपयोग किए बिना।

+0

ठीक है क्योंकि बटन इसे बढ़ाता है, हमें इसके ऑब्जेक्ट व्यू की आवश्यकता क्यों है? – Sikander

+0

@ सिकंदर बस अभी मेरा जवाब पढ़ें .. मैंने उदाहरण प्रदान किया है – Pragnani

+0

बहुत अच्छी तरह से समझाया गया है, धन्यवाद सर – Sikander

2

पहला कारण मेरे दिमाग में आता है कि आप एक ही विधि में कई विचार संलग्न कर सकते हैं और v.getId() का उपयोग करके आप दबाए गए दृश्य के अनुसार व्यवहार कर सकते हैं।

आम तौर पर, घटना से संबंधित दृश्य होने के कारण कई कारणों से उपयोगी हो सकता है जैसे कि इसके कुछ विशेषताओं को बदलना।

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