Size: a a a

StartAndroid Ru Kotlin

2020 February 19

V

Vitali in StartAndroid Ru Kotlin
так для этого и есть мввм
потому что вьюМодел переживает переворот
источник

V

Vitali in StartAndroid Ru Kotlin
если ошибаюсь, то не бросайте говна
источник

IS

Ilya Shikakov in StartAndroid Ru Kotlin
Я к тому, чтл все данные хранить во вью, а не новую порцию
источник

IS

Ilya Shikakov in StartAndroid Ru Kotlin
Потому что при повороте получите только порцию данных, если будите хрвнить часть)
источник

V

Vitali in StartAndroid Ru Kotlin
Ilya Shikakov
Я к тому, чтл все данные хранить во вью, а не новую порцию
так после поворота данных во вью не останется
источник

IS

Ilya Shikakov in StartAndroid Ru Kotlin
Вью модель разрушается только при уничтожении фрагмента/активити, с которым связанно, так что все данные в ней будут в сохранности)
источник

IS

Ilya Shikakov in StartAndroid Ru Kotlin
Vitali
зачем? если есть .clear()?
Зачем чистить список, если можно просто присвоить null/ пустой список, а потом переприсвоить на новый . Если в списке будет 100-1000 элементов, просто будет лишняя работа.
источник

m

mSokol in StartAndroid Ru Kotlin
Добрый день! Подскажите, пожалуйста, почему студия не принимает строковое значение из LiveData<String> в качестве Drawable.
Если там должно быть LiveData<Drawable>, то как его присвоить в функции?
источник

m

mSokol in StartAndroid Ru Kotlin
источник

YR

Yevhen Railian in StartAndroid Ru Kotlin
@MillenniumSokol используй для этого LiveData<Int>
а значения доставай из R файла. Он генерируется сам. R.drawable.my_border_blue
источник

m

mSokol in StartAndroid Ru Kotlin
Спасибо=)
источник

YR

Yevhen Railian in StartAndroid Ru Kotlin
@MillenniumSokol или LiveData<Drawable> а значения доставай
context.getDrawable(R.drawable.my_border_blue)
источник

YR

Yevhen Railian in StartAndroid Ru Kotlin
mSokol
Спасибо=)
Пожалуйста
источник

m

mSokol in StartAndroid Ru Kotlin
Yevhen Railian
@MillenniumSokol используй для этого LiveData<Int>
а значения доставай из R файла. Он генерируется сам. R.drawable.my_border_blue
xml не принимает инт
источник

YR

Yevhen Railian in StartAndroid Ru Kotlin
Аа, только увидел, что тебе это для байндинга нужно. Не знаю, я его не люблю и не использую
источник

ЕГ

Евгений Гончаров... in StartAndroid Ru Kotlin
умри
источник

m

mSokol in StartAndroid Ru Kotlin
после тебя=))
источник

m

mSokol in StartAndroid Ru Kotlin
Если ViewModel нужен контекст приложения, например, чтобы найти системную службу, он может расширить класс AndroidViewModel и иметь конструктор, который получает приложение в конструкторе, поскольку класс приложения расширяет контекст.

MyViewModel.kt

class MyViewModel(application: Application): AndroidViewModel(application){  
 private val _showIcon = MutableLiveData<Drawable>  
 val showIcon: LiveData<Drawable>  
   get() = _showIcon

 fun applyChanged(){
    if(condition){
      _showIcon.value = AppCompatResources.getDrawable(getApplication(),R.drawable.icon1)
    }else{
      _showIcon.value = null
    }
 }
}

main_activity.xml

  android:drawableTop="@{viewModel.showIcon}"
источник

m

mSokol in StartAndroid Ru Kotlin
Если кому пригодится
источник

А

Андрей in StartAndroid Ru Kotlin
Может и пригодится, но лучше так не делать)
источник