فهرست مطالب
ViewModel یک کلاس از Architecture Components در اندروید است که برای مدیریت و ذخیرهی دادهها و اطلاعات مربوط به رابط کاربری (UI) به کار میرود. ViewModel اطلاعات را بین فعالیتها (Activities) یا فرگمنتها (Fragments) یک برنامه اندروید به اشتراک میگذارد و از از دست رفتن دادهها در اثر تغییرات ترتیب چرخه حیات این کامپوننتها جلوگیری میکند.
در زیر یک آموزش ساده برای استفاده از ViewModel در برنامهنویسی اندروید با استفاده از Kotlin آورده شده است.
افزودن وابستگیها:
برای استفاده از ViewModel، ابتدا به فایل build.gradle ماژول شما این وابستگی را اضافه کنید:
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
ایجاد ViewModel:
ابتدا یک ViewModel بسازید. به عنوان مثال، فرض کنید که ما یک ViewModel برای مدیریت تعداد یک عدد داریم:
// MyViewModel.kt
import androidx.lifecycle.ViewModel
class MyViewModel : ViewModel() {
private var count: Int = 0
fun getCount(): Int {
return count
}
fun incrementCount() {
count++
}
}
اتصال ViewModel به فعالیت (Activity) یا فرگمنت (Fragment):
در فعالیت یا فرگمنت خود، یک نمونه از ViewModel را ایجاد کنید و به طور معمول آن را به همراه فعالیت یا فرگمنت خود نگه دارید:
// MyActivity.kt
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import androidx.activity.viewModels
import kotlinx.android.synthetic.main.activity_main.*
class MyActivity : AppCompatActivity() {
private val viewModel: MyViewModel by viewModels()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// استفاده از ViewModel
textViewCount.text = viewModel.getCount().toString()
buttonIncrement.setOnClickListener {
viewModel.incrementCount()
textViewCount.text = viewModel.getCount().toString()
}
}
}
در این مثال، viewModels از مخزن ViewModel استفاده میکند و یک نمونه از MyViewModel را ایجاد میکند. هر فعالیت یا فرگمنت که از viewModels استفاده میکند، یک نمونه جدید از ViewModel ایجاد نخواهد کرد و هر جا از MyViewModel یاد کنیم، همان نمونه ایجاد شده در ابتدا استفاده میشود.
تکمیل: این تازه شروع است، و شما میتوانید ViewModel را برای مدیریت دادههای بیشتر و انجام عملیات بیزینس پیچیدهتر به کار ببرید. همچنین، میتوانید از LiveData برای اطلاعرسانی تغییرات در ViewModel به فعالیت یا فرگمنت استفاده کنید.
نظرات
دیدگاهی برای این مطلب ثبت نشده است.