आज हम देखने वाले है 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 करने के लिए जेसा निचे दी गई फोटो में है
अब आप ने जो MainActivityViewModel को वैल्यू पास किये MainActivityViewModelFactory से उसे
आप की MainActivityViewModel में रखना है जेसे निचे दिया गया है
xml फ़ाइल् निचे की फोटो में है वह आप देख सकते हो के कैसे layout टैग में हमारा पैरेंट ConstraintLayout को रख दिया databinding के इस्तेमाल के लिए.
अब हम MainActivity में कुछ लाइब्रेरी इम्पोर्ट करेगे और उसके variable बनायेगे
जेसे databinding, viewModel और factory निचे दी गयी फोटो के जैसे
उसके बाद हम databinding को view सेट करेगे और उसके बाद factory को इनिश्लाइज़ करेगे और उसे वैल्यू पास करेगे.
उसके बाद view model को इनिश्लाइज़ करेगे और उसमे ViewModelProvider को this,factory पास करेगे और get करेगे MainActivityViewModel::class.java को.
और बाद में text view को view model में से get काउंट फंक्शन को कॉल कर के काउंट की वैल्यू सेट करेगे
और उसके बाद बटन के क्लिक पैर भी text view को view model में से अपडेट काउंट फंक्शन को कॉल कर के काउंट की वैल्यू सेट करेगे
आप निचे दी गई फोटो में कोड देख सकते हो
तो यह था डाटा view model factory अगर आप को कोई चीज़ नहीं समझी तो आप comment में पुच सकते हो.
और अय्से ही topic के लिए हमें फॉलो ज़रूर करियेगा आगे हम और MVVM structure in kotlin भी देखने वाले है
0 टिप्पणियाँ