ViewModel with DataBinding and LiveData With DataBinding in android kotlin

 आज हम देखने वाले है   ViewModel के साथ DataBinding कैसे होती है  और LiveData के साथ DataBinding कैसे होती है.

हमने पेहले के टॉपिक्स में देखा है के databind क्या होती है वो किस लिए बहोत इम्पोर्टेन्ट है.

databinding को किस तरह से enable करते है.

उदाहरन

    buildFeatures{

        dataBinding true

    }


आप को कुछ dependancy भी add करना होगी.


उदाहरन

    def lifecycle_version = "2.3.1"

    // ViewModel

    implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"

    // LiveData

    implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"



 उसे आप डिटेल में हमारे हमारे पुराने topic में देख सकते हो आगे उसकी लिंक दी गयी है. 

https://www.antechs.in/2021/03/data-binding-in-kotlin.html

पेहले हम viewmodel के साथ databinding देखते है.

उसे हम एक बटन क्लिक listner पैर देखेगे.

हम डायरेक्ट view model के अपडेट फंक्शन को view से कॉल करेगे यानि xml फाइल से कॉल करेगे.

तो हमने databinding तो enable कर दिए अब हमें xml फाइल में बदलाव करने होगे जेसे हमें layout टैग add करना होगा और उसके अंदर हमारा डिजाईन होगा.

और layout टैग में हम data टैग add करेगे और उसमे variable टैग में name और टाइप लिखेगे

name उसे होता है viewmodel के अंदर के चीजों को फेत्च करनेके लिए.

टाइप में हम जो view model use करने वाले है उसका path सेट करना होता है.

उदाहरन 

  <data>

        <variable

            name="viewmodel"

            type="com.antechs.viewmodelfactory.MainActivityViewModel" />

    </data>


आगे के  लिए हम ने पुराने topic और उदाहरन लिया है उसकी लिंक निचे दी गयी है.

..............

अब हमें सिर्फ एक लाइन add करनी है जिसमे हम view में जो data varibale name जो दिया है उसे viewmodel assign कर के

उदाहरण

 binding.viewmodel=viewModel

और पूरी फोटो निचे दी गयी है.

mainactivity


और जो हमने view model लिया है उसकी भी फोटो निचे दी गयी है.

viewmodel


और जो view model factory लिया है उसकी भी फोटो निचे दी गयी है.

viewmodelfactory



अब हम जो xml फाइल है उसके अंदर के बटन को onclick पर  view model का अपडेट फंक्शन कॉल करेगे.

उदाहरन

   android:onClick="@{()->viewmodel.updateCount()}"

निचे xml की पूरी फोटो दी गयी है.

xml



इस तरह से हम viewmodel के साथ databinding करते है.


अब हमें live data के साथ databinding के लिए थोड़े बदलाव करने होगे.

हम जो text view है उसपर live data की मदद से डायरेक्ट view के text को वैल्यू सेट करेगे

सब से पेहले हमें view model में बदलाव करना होगा वह हमें live data का इस्तेमाल करना होगा जीना निचे दी गयी फोटो में है.

viewmodellivedata


फिर बाद में हमें MainActivity में बदलाव करने होगे पुराने कोड को comment करना होगा जो हमने text को वैल्यू सेट करने के लिए लिखे थेऔर उसके बाद हमें 

binding.lifecycleOwner=this यह करना होगा 

पूरा कोड आप निचे दी गयी फोटो में देख सकते हो.

mainactivity


और xml में text view को वैल्यू सेट करनि होगी जेसे निचे दी गयी फोटो में है.

xml





एक टिप्पणी भेजें

0 टिप्पणियाँ