استفاده از Backing Field

پرسیده شده
فعالیت 1090 روز پیش
دیده شده 434 بار
0

سلام، وقت بخیر

ببخشید در بخش نهایی، استاد فرمودند که بجای اینکه مستقیما بذاریم view بتونه مقدار رو عوض کنه، با استفاده از ویژگی Backing Field کاتلین از این کار جلوگیری میکنیم. در بخشی که لیست محصولات رو که میگرفتیم. با این کار، وقتی متد موفقیت درخواست به سرویس ران بشه، دیگه نمیشه مقدار جدید به لیست محصولات ست کرد(کلاس MainViewModel). برای رفع این مشکل  باید چیکار کرد؟

 

val _productsLiveData = MutableLiveData<List<Product>>()
val productsLiveData:LiveData<List<Product>>
get() = _productsLiveData
  override fun onSuccess(t: List<Product>) {
                   productsLiveData.value = t //!!!! Error..
               }
فایل پیوست

محمد دبیری
محمد دبیری

12 اردیبهشت 00

0
حذف شده

سلام وقت بخیر

 

در این بخش از اموزش اروری وجود نداشت ممنون میشم با جزییات بیشتری مشکلتون رو بگید تا شما رو راهنمایی کنم

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

13 اردیبهشت 00

حذف شده
وقتی productsLiveData رو به بکینگ فیلد پراپرتی تغییر بدیم. در کلاس ویو مدل، اون وقت متد onSuccess خطا دار میشه. توی ویدیو هم قرمز میشه این خط ولی چون استاد برش میگردونن کد رو به حالت عادی متوجه نمیشن. الان ستر نداره این متغیر تو حالت بکینگ فیلد. سوالم اینه پس توی onSuccess چطوری مقدار بدیم؟
محمد دبیری

14 اردیبهشت 00