6

मैं एक ImageButton और एक TextView इस तरह एक LinearLayout में लिपटे है। मैं उपयोगकर्ता LinearLayout में कहीं भी क्लिक करने के लिए एक onclick ईवेंट को सक्रिय करने की अनुमति चाहते हैं। नीचे दिए गए कोड से पता चलता OnClickListener के लिए सेट अप:कैप्चर LinearLayout onClick घटनाओं

final LinearLayout actionHide = (LinearLayout) findViewById(R.id.action_showhide); 
    actionHide.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Log.d(AppAdvocate.TAG, "Event caught"); 
     } 
    }); 

कोड काम करता है जब उपयोगकर्ता TextView पर कहीं भी क्लिक लेकिन जब उपयोगकर्ता ImageButton पर क्लिक करता है घटना LinearLayout अप करने के लिए बुलबुला नहीं है। मैं बटन के लिए ऑनक्लिक लिस्टनर को परिभाषित नहीं कर रहा हूं। मैं drawable चाहते मेरी ImageButton बदलने के लिए तो मैं क्लिक करने योग्य = false करने के लिए इसे स्थापित करने के लिए नहीं करना चाहती। घटना को बुलबुला करने का कोई तरीका है?

उत्तर

0

तुम सच में बटन क्लिक करने योग्य नहीं बनाने के लिए नहीं करना चाहते हैं, तो आप सिर्फ एक श्रोता बटन को जोड़ सकते हैं और LinearLayout onClick रूप में एक ही कार्रवाई प्रदर्शन कर सकता है। यह उपयोगकर्ता को दिखाई देगा जैसे कि यह एक बड़ा बटन था।

+0

धन्यवाद मायरा, इस काम करता है। ताकि उसके drawable परिवर्तन राज्य जब LinearLayout दबाया जाता है कैसे मैं ImageButton करने के लिए नीचे LinearLayout onClick ईवेंट झरना चाहिए? – Richard

+0

मुझे यकीन है कि क्या राज्य की बात कर रहे नहीं हूँ। क्या छवि बटन टॉगल बटन की तरह कार्य करता है, जहां यह एक क्लिक किए गए राज्य को दिखाता है? आप अपने टॉगल बटन पर बस सेट चेक (चेकस्टेट) को कॉल करने में सक्षम होना चाहिए। –

4

LinearLayout क्लिक करने के लिए आपको अपने सभी बच्चों के तत्वों पर android:focusable="false" सेट करने की आवश्यकता है।

public void viewClicked(View v){ 

    switch (v.getId()) 
    { 
     case R.id.action_showhide: 
      //do something 
      break; 
     case R.id.action_showhide: 
      //do something 
      break; 
    } 

} 
+1

मैंने सभी बच्चे को "एंड्रॉइड: फोकस करने योग्य = झूठा" सेट किया है, लेकिन लीनियरलाइट अभी भी अनजान –

1
मैं क्या समझ से

, तो आपको निम्न की आवश्यकता होगी, हो जाएगा । यह मदद करनी चाहिए।

0

सेट एंड्रॉयड :: क्लिक करने योग्य = "false" ImageButton पर:

<LinearLayout android:orientation="vertical" 
     android:layout_width="wrap_content" android:layout_height="wrap_content" 
     android:layout_weight="20" android:gravity="center" 
     android:clickable="true" android:id="@+id/action_showhide"> 
     <ImageButton android:id="@+id/test" 
      android:layout_width="wrap_content" android:layout_height="wrap_content" 
      android:src="@drawable/ic_toggle_hide_states" android:background="@null">   </ImageButton> 
     <TextView android:id="@+id/TextView01" android:layout_width="wrap_content" 
      android:layout_height="wrap_content" android:text="@string/txtHide" 
      android:textColor="@drawable/orange" android:textStyle="bold" 
android:onClick="viewClicked"></TextView> 
    </LinearLayout> 

उसके बाद, आप समारोह बनाने के लिए:

+2

नहीं है, कृपया प्रश्न पढ़ें: "इसलिए मैं इसे क्लिक करने योग्य = झूठी पर सेट नहीं करना चाहता" – thriqon