2016-05-17 4 views
10

जैसा कि सवाल इंगित करता है, एक्सएमएल में स्विच बटन में चेक चेंज श्रोता को कैसे बाध्य करना है?हम चेक किए गएChageListener ईवेंट के लिए स्विच बटन के लिए डेटा बाध्यकारी कैसे कार्यान्वित कर सकते हैं?

मैं पुनर्चक्रण दृश्य का उपयोग नहीं कर रहा हूं। बस एक साधारण लेआउट।

किसी भी मदद की सराहना की।

+0

क्या यह गतिशील स्थापित करने के साथ गलत क्या है? –

+0

क्या हम उसी दृश्य मॉडल का उपयोग कर सकते हैं जहां डिस्क कैश का उपयोग करके देखने योग्य फ़ील्ड वाले प्रोजेक्ट में? –

उत्तर

4

आप एक विधि संदर्भ में यह कर सकते हैं:

<CheckBox android:onCheckedChanged="@{callback::checkedChangedListener}".../> 

या एक लैम्ब्डा अभिव्यक्ति के साथ अगर आप विभिन्न मापदंडों के पास करना चाहते हैं:

<CheckBox android:onCheckedChanged="@{() -> callback.checked()}".../> 
+6

यह मेरे लिए काम नहीं कर रहा है मुझे 'अज्ञात विशेषता है एंड्रॉइड: ऑन चेकड चेंज' –

+0

@ टियागो ओलिविरा हालांकि मुझे यह चेतावनी भी मिल रही है कि ऐप लॉन्च करने के बाद यह वास्तव में काम करता है – arekolek

+0

@ जॉर्ज मॉर्ट क्यों हम ऐप का उपयोग नहीं कर सकते: ऑन चेक किए गए चेंजलिस्टर चेकबॉक्स में कॉल विधि सेटऑन चेक किए गए चेंजलिस्टर? – David

13

लैम्ब्डा अभिव्यक्ति का उपयोग करते हुए और एक Switch:

public void onCheckedChanged(boolean checked) { 
    // implementation  
} 

एक्सएमएल फ़ाइल:

<android.support.v7.widget.SwitchCompat 
    android:onCheckedChanged="@{(switch, checked) -> item.onCheckedChanged(checked)}" 
    ... 
/> 

कहाँ item है वर्ग कि onCheckedChange विधि को लागू करता है और इस तरह एक्सएमएल फ़ाइल को आयात किया जाता है:

<data> 
    <variable 
     name="item" 
     type="yourClass"/> 
</data> 
+0

क्या हम एक कस्टम 2-तरफा बाध्यकारी बना सकते हैं जो बॉयलरप्लेट –

+0

@AdityaLadwa को कम करेगा 'चेक' विशेषता का उपयोग करने में क्या गलत है? आप इसे आसानी से बांध सकते हैं –

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

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