pass context from view model factory

پرسیده شده
فعالیت 1331 روز پیش
دیده شده 656 بار
2

با سلام خدمت استاد و دوستان گل

سوالم این هستش که ما در گذشته که کلاس viewModel رو خودمون میساختیم و از viewModelProvider استفاده نمیکردیم ، اگر لازم بود که کلاسی مانند appDatabase رو به viewModel پاس بدیم و کلاس appDatabase نیاز به context داشت ، ما میتونستیم با استفاده از اکتیویتی یا فرگمنت ، context رو پاس بدیم

اما اکنون که از اینترفیس viewModelProvider.Factory برای پاس دادن پارامترهای کانستراکتور استفاده میکنیم ، راه استانداردی وجود داره که ما بتونیم context رو پاس بدیم (البته بدون استفاده از لایبری‌های Dagger یا Koin) 

فایل پیوست

Hamidreza Karimi
Hamidreza Karimi

14 شهریور 99

3
حذف شده

سلام وقت بخیر 

برای اینکار میتونین بجای اینکه از ViewModel ارث بری کنید از AndroidViewModel ارث بری کنید .

و application.getApplicationContext(); یک اینتنس از context به شما میدهد

موفق باشید.

نمونه کد:

public class NameViewModel extends AndroidViewModel {
    public NameViewModel(@NonNull Application application) {
        super(application);
        application.getApplicationContext();
    }
}

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

14 شهریور 99