live data
इस topic में हम देखने वाले है के live data क्या होता है kotlin में और वो क्यू use होता है.
live data view को automatic बदल देता है जेसे आप एक बार live data की मदत से text view का text सेट करदो और बाद में जब भी वो text की वाल्यु बदलेगी backend से तो वो text की वैल्यू भी automatic बदल जाएगी, जैसा की आप की वैल्यू बदली तो वह आप का ui भी बदल देगा , आप को बार बार text की वैल्यू सेट नहीं करना होगी.
live data कहा use कर सकते है तो वह तीन जगाह इस्तेमाल कर सकते है जेसे
1. Activity
2. Fragment
3. service
यह तीन जगह live data का इस्तेमाल कर सकते है
live data observer जो है वह सिर्फ एक्टिव live साइकिल में ही अपडेट होता है.
तो चलिए एक example देखते है और सीखते है. जो हमने लास्ट topic में लिया था उसे ही आगे करेगे,
तो यह देखने से पेहले view model factory वाला topic ज़रुर देखिएगा
उसकी लिंक यह है https://www.antechs.in/2021/04/view-model-factory-android-kotlin-in.html
सब से पेहले हमें dependancy add करना होगी और databind true करना होगी.
वह हम gradle फाइल में से करेगे
buildFeatures{
dataBinding true
}
def lifecycle_version = "2.3.1"
// ViewModel
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"
// LiveData
implementation "androidx.lifecycle:lifecycle-livedata-ktx:$lifecycle_version"
आप निचे दी गयी फोटो में भी देख सकते हो के हमने कैसे dependancy और data binding enable किया है.
अभी हमें viewmodel class में बदलाव करने होगे जेसे पाहिले हमने var countVM=0 डायरेक्ट एक variable बना कर उसे वैल्यू assign कर दिए थे पर अब हमें MutableLiveData का इस्तेमाल करना है
और उससे पेहले हम एक चीज़ और देखेगे के LiveData और MutableLiveData क्या होता है
LiveData के object को सिर्फ रीड करने के लिए होता है उसे हम एडिट नहीं कर सकते है..
और MutableLiveData के object को रीड अपडेट भी कर सकते है.
हम एक variable बनायेगे MutableLiveData का और एक LiveData का और दोनों को Int टाइप का रखेगे और MutableLiveData को init के टाइम countStart वैल्यू सेट करेगे जो की हमने लास्ट टोपिक में view model factory से लाए थे.
हमें वैल्यू को अपडेट करना है इस लिए हमने MutableLiveData use किया है.
और वो वैल्यू हमने get() = countVM के ज़रिये LiveData को दे दिए बाद में वो जेसे वैल्यू change होगे MutableLiveData की वो LiveData की भी वैल्यू automatic बड़ल जाएगी आप पूरा model view का कोड निचे दी गयी फोटो में देख सकते हो
ViewModel:
ViewModelFactory:
और भी दूसरी फोटो है जिसमे view model factory और xml की फोटो भी है
अभी हम आ जाते है MainActivity पैर यहाँ अब हमें live data वाला variable हमें viewmodel में से मिलेगा और उसकी वैल्यू के लिए observer इस्तेमाल करना होता है
वो आप निचे दी गयी फोटो में देख सकते है
MainActivity :
और बाद में उसे अपडेट करने के लिए आप को बस अपडेट फंक्शन कॉल करना होगा जो हमने view model में दिया है.
और वहां से आप की वैल्यू एक से बढ़ेगी और ui automatic बदल जाएगा, सेट text का इस्तेमाल किये बगैर आप निचे दी गयी फोटो में देख सकते हो ...
0 टिप्पणियाँ