Страница 1 из 1
Урок 2. LiveData
Добавлено: 28 дек 2017, 20:22
damager82
В этом уроке рассмотрим основные возможности LiveData. Как подписаться на его данные. Как помещать в него данные. Как он взаимодействует со своими подписчиками.
Click here to read this article!
Re: Урок 2. LiveData
Добавлено: 23 мар 2018, 01:22
dmitres
При использовании такого подхода, данные в UI элементы попадают после их (элементов) отображения на форме.
Что приводит к мерцанию при первом открытии формы, в моем случае это fragment. Чем больше LiveData используется и больше виджетов на форме тем сильнее заметны мерцания.
Re: Урок 2. LiveData
Добавлено: 07 дек 2019, 07:03
genbachae
Уважаемые форумчане подскажите пожалуйста, почему не происходит вызова функции "onChanged"?
Код: Выделить всё
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val liveData = DataController.getData()
liveData?.observe(this, Observer<String>() {
@Override
fun onChanged(@Nullable value:String) {
textView.text = value
}
});
}
fun refresh(view: View) {
DataController.refresh()
}
object DataController { // это синглтон!
private val liveData = MutableLiveData<String>()
fun getData(): LiveData<String>? {
return liveData
}
fun getCurrentDateTime(): Date {
return Calendar.getInstance().time
}
fun refresh(){
val date = getCurrentDateTime()
val dateInString = date.toString()
liveData.value = dateInString
}
Саму подписку вроде верно сделал, данные обновляю путём вызова: DataController.refresh()
Исходный код лежит здесь:
https://github.com/genbachae/T_LiveData
или здесь:
https://drive.google.com/open?id=1wKZx_ ... _oJ9_WyU8W