ViewModelFactory android kotlin in Hindi

 आज हम देखने वाले है ViewModelFactory क्या होता है kotlin में , और वो क्यू इतन इम्पोर्टेन्ट है.

तो चलिए स्टार्ट करते है...

ViewModelFactory: 

View Model को कस्टमाइज करने के लिए ViewModelFactory का इस्तेमाल होता है.

चलिए एक उदाहरन देख कर सीखते है..

इस उदाहरन में हम activity से वैल्यू को view model factory पास करेगे और वह से view model को पास करेगे और उसे वापस activity में text view में सेट करेगे

सब से पेहले हमें module level gradle फाइल में databind true करनी है.

उदाहरन 

  buildFeatures{

        dataBinding true

    }

उसके बाद view model के लिए डिपेंडेंसी 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"


अब हम एक class बनेगे MainActivityViewModelFactory नाम की और उसे  एक पैरामीटर countStart नाम का जिसका डेटा टाइप Int होगा और उसे ViewModelProvider.Factory से एक्सटेंड करेगे.

और एक create फंक्शन इम्प्लेमेंट करेगे और उसमे चेक करेगे की आप निचे दी गयी फोटो में देख सकते हो के हम कैसे इफ कंडीशन लगाएगे और उसमे MainActivityViewModel को countStart पैरामीटर में पास करेगे.

और अगर कुछ एक्सेप्शन  आया तो उसे थ्रो कर देगे 

आप बाद में MainActivityViewModelFactory को कॉपी पेस्ट कर सकते हो सिर्फ नाम और पैरामीटर बदल कर जब भी आप को customise view model चाहिए तब.


अब हमें MainActivityViewModelमें एक पैरामीटर लेना होगा जो MainActivityViewModel factory से जो वैल्यू आई है उसे catch करने और उसे countVM को assign करने के लिए जेसा निचे दी गई फोटो में है 

viewmodelfactory

अब आप ने जो MainActivityViewModel को वैल्यू पास किये  MainActivityViewModelFactory से उसे 

आप की MainActivityViewModel में रखना है जेसे निचे दिया गया है 

MainActivityViewModel


xml फ़ाइल्  निचे की फोटो में  है वह आप देख सकते हो के कैसे layout टैग में हमारा पैरेंट ConstraintLayout को रख दिया databinding के इस्तेमाल के लिए.

viewmodelfactoryxml


अब हम MainActivity में कुछ लाइब्रेरी इम्पोर्ट करेगे और उसके variable बनायेगे

जेसे databinding, viewModel और factory निचे दी गयी फोटो के जैसे 

viewmodelfactoryktvariable

उसके बाद हम databinding को view सेट करेगे और उसके बाद factory को इनिश्लाइज़ करेगे और उसे वैल्यू पास करेगे.

उसके बाद view model को इनिश्लाइज़ करेगे और उसमे ViewModelProvider को this,factory पास करेगे और get करेगे MainActivityViewModel::class.java को.

और बाद में text view को  view model में से get काउंट फंक्शन को कॉल कर के काउंट की वैल्यू सेट करेगे 

और उसके बाद बटन के क्लिक पैर भी text view को  view model में से अपडेट काउंट फंक्शन को कॉल कर के काउंट की वैल्यू सेट करेगे 

आप निचे दी गई फोटो में कोड देख सकते हो 

mainkt

तो यह था डाटा view model factory अगर आप को कोई चीज़ नहीं समझी तो आप comment में पुच सकते हो. 


और अय्से ही topic के लिए हमें फॉलो ज़रूर करियेगा आगे हम और MVVM structure in kotlin भी देखने वाले है 







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

0 टिप्पणियाँ