डेटा बाइंडिंग लाइब्रेरी Android Jetpack का हिस्सा है.

डेटा बाइंडिंग लाइब्रेरी, एक सहायता लाइब्रेरी है. इसकी मदद से, यूज़र इंटरफ़ेस (यूआई) को बाइंड किया जा सकता है डिक्लेरेटिव टोन का इस्तेमाल करके, अपने ऐप्लिकेशन के डेटा सोर्स के लेआउट में कॉम्पोनेंट को प्रोग्राम करने की ज़रूरत नहीं है.

लेआउट को अक्सर ऐसी गतिविधियों में तय किया जाता है जिनमें यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क को कॉल किया जाता है तरीकों का इस्तेमाल करना होगा. उदाहरण के लिए, नीचे दिया गया कोड findViewById() को कॉल करके TextView विजेट को ढूंढता है और उसेuserName viewModel वैरिएबल:

Kotlin

findViewById<TextView>(R.id.sample_text).apply {
    text = viewModel.userName
}

Java

TextView textView = findViewById(R.id.sample_text);
textView.setText(viewModel.getUserName());

नीचे दिए गए उदाहरण में, टेक्स्ट असाइन करने के लिए डेटा बाइंडिंग लाइब्रेरी का इस्तेमाल करने का तरीका बताया गया है विजेट को सीधे लेआउट फ़ाइल में जोड़ें. इससे किसी भी संपर्क को कॉल करने की ज़रूरत नहीं होती ऊपर दिखाया गया Java कोड शामिल नहीं है. असाइनमेंट में @{} सिंटैक्स के इस्तेमाल पर ध्यान दें एक्सप्रेशन:

<TextView
    android:text="@{viewmodel.userName}" />

लेआउट फ़ाइल में बाइंडिंग कॉम्पोनेंट की मदद से, कई यूआई फ़्रेमवर्क कॉल हटाए जा सकते हैं आपकी गतिविधियां और उनका रखरखाव करना आसान हो जाएगा. इससे यह भी हो सकता है अपने ऐप्लिकेशन की परफ़ॉर्मेंस को बेहतर बनाएं. साथ ही, मेमोरी लीक और शून्य पॉइंटर को रोकने में मदद करें अपवाद.

डेटा बाइंडिंग लाइब्रेरी का इस्तेमाल करना

नीचे दिए गए पेजों की मदद से, डेटा बाइंडिंग लाइब्रेरी को इस्तेमाल करने का तरीका जानें Android ऐप्लिकेशन.

शुरू करना
अपने डेवलपमेंट एनवायरमेंट को डेटा के साथ काम करने के लिए तैयार करने का तरीका जानें बाइंडिंग लाइब्रेरी. इसमें Android Studio में डेटा बाइंडिंग कोड की सुविधा भी शामिल है.

लेआउट और बाइंडिंग एक्सप्रेशन

एक्सप्रेशन लैंग्वेज की मदद से, ऐसे एक्सप्रेशन लिखे जा सकते हैं जो एक-दूसरे से जुड़े हों व्यू के हिसाब से वैरिएबल तय करें. डेटा बाइंडिंग लाइब्रेरी अपने-आप लेआउट में व्यू को आपके डेटा से बाइंड करने के लिए ज़रूरी क्लास जनरेट करता है ऑब्जेक्ट हैं. लाइब्रेरी से इंपोर्ट, वैरिएबल, और शामिल हैं जिन्हें अपने लेआउट में इस्तेमाल किया जा सकता है.

लाइब्रेरी की ये सुविधाएं, आपके मौजूदा लेआउट के साथ आसानी से काम करती हैं. उदाहरण के लिए, एक्सप्रेशन में इस्तेमाल किए जा सकने वाले बाइंडिंग वैरिएबल तय किए जाते हैं data एलिमेंट में, जो यूज़र इंटरफ़ेस (यूआई) लेआउट के रूट एलिमेंट का सिबलिंग है. दोनों एलिमेंट को layout टैग में रैप किया जाता है, जैसा कि यहां दिखाया गया है उदाहरण:

<layout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto">
    <data>
        <variable
            name="viewmodel"
            type="com.myapp.data.ViewModel" />
    </data>
    <ConstraintLayout... /> <!-- UI layout's root element -->
</layout>

ऑब्जेक्ट किए जा सकने वाले डेटा ऑब्जेक्ट के साथ काम करना
डेटा बाइंडिंग लाइब्रेरी में क्लास और तरीकों से डेटा देखने के बारे में जानकारी मिलती है देखें. आपको यूज़र इंटरफ़ेस (यूआई) को रीफ़्रेश करने की चिंता करने की ज़रूरत नहीं है, डेटा सोर्स में होने वाले बदलाव शामिल हैं. अपने वैरिएबल या उनके प्रॉपर्टी हैं. लाइब्रेरी से आपको ऑब्जेक्ट, फ़ील्ड या ट्रैक किए जा सकते हैं.
जनरेट की गई बाइंडिंग क्लास
डेटा बाइंडिंग लाइब्रेरी बाइंडिंग क्लास जनरेट करती है. इन क्लास का इस्तेमाल के वैरिएबल और व्यू शामिल हैं. इस पेज पर, आपको वेबसाइट के कॉन्टेंट को कस्टमाइज़ करने और उसे इस्तेमाल करने का तरीका बताया गया है जनरेट की गई बाइंडिंग क्लास हैं.
बाइंडिंग अडैप्टर
हर लेआउट एक्सप्रेशन के लिए, एक बाइंडिंग अडैप्टर होता है, जो इससे जुड़ी प्रॉपर्टी या लिसनर सेट करने के लिए, फ़्रेमवर्क कॉल ज़रूरी हैं. इसके लिए उदाहरण के लिए, बाइंडिंग अडैप्टर, काम करने के setText() तरीके को बेहतर तरीके से इस्तेमाल कर सकता है टेक्स्ट प्रॉपर्टी सेट करने के लिए या setOnClickListener() तरीके को कॉल करके लिसनर को क्लिक इवेंट में बदल देता है. सबसे सामान्य बाइंडिंग अडैप्टर, जैसे कि android:text प्रॉपर्टी के अडैप्टर की जानकारी दी गई है, जिसका इस्तेमाल इस पेज के उदाहरणों में किया गया है, आपके इस्तेमाल के लिए android.databinding.adapters पैकेज में उपलब्ध हैं. सामान्य बाइंडिंग अडैप्टर की सूची देखने के लिए, यहां देखें अडैप्टिव. आपके पास कस्टम अडैप्टर बनाने का भी विकल्प है, जैसा कि इस उदाहरण में दिखाया गया है:

Kotlin

@BindingAdapter("app:goneUnless")
fun goneUnless(view: View, visible: Boolean) {
    view.visibility = if (visible) View.VISIBLE else View.GONE
}

Java

@BindingAdapter("app:goneUnless")
public static void goneUnless(View view, Boolean visible) {
    view.visibility = visible ? View.VISIBLE : View.GONE;
}
आर्किटेक्चर कॉम्पोनेंट के लिए बाइंड लेआउट व्यू
Android सहायता लाइब्रेरी में स्ट्रक्चर शामिल है कॉम्पोनेंट, जिनका इस्तेमाल इन कामों के लिए किया जा सकता है मज़बूत, टेस्ट किए जा सकने वाले, और मैनेज किए जा सकने वाले ऐप्लिकेशन डिज़ाइन करना. Google Analytics 4 प्रॉपर्टी का इस्तेमाल करके, डेवलपमेंट को और आसान बनाने के लिए डेटा बाइंडिंग लाइब्रेरी वाले कॉम्पोनेंट यूज़र इंटरफ़ेस (यूआई) का हिस्सा है.
दो-तरफ़ा डेटा बाइंडिंग
डेटा बाइंडिंग लाइब्रेरी, दो-तरफ़ा डेटा बाइंडिंग के साथ काम करती है. इसके लिए इस्तेमाल किया गया नोटेशन इस तरह की बाइंडिंग, किसी प्रॉपर्टी में डेटा के बदलाव पाने की सुविधा में मदद करती है और एक साथ उस प्रॉपर्टी के उपयोगकर्ता के अपडेट सुनें.

अन्य संसाधन

डेटा बाइंडिंग के बारे में ज़्यादा जानने के लिए, इन्हें देखें अतिरिक्त संसाधन शामिल करें.

सैंपल

कोड लैब

ब्लॉग पोस्ट