Делегирование изменяемого состояния свойству в другом объектеAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Делегирование изменяемого состояния свойству в другом объекте

Сообщение Anonymous »

Я новичок в Jetpack Compose. Есть ли способ делегировать изменяемое состояние свойству другого объекта? У меня есть такие классы, как показано ниже:

Код: Выделить всё

class Contact(
val name: String,
val surname: String,
private var _isFavourite: Boolean = false
) {

var isFavourite
get() = _isFavourite
set(value) {
// Some business work done here
_isFavourite = value
}
}

class ContactViewModel(contact: Contact) : ViewModel() {
var isFavourite by mutableStateOf(contact.isFavourite)
}
Я хотел бы, чтобы обновления, внесенные в свойство isFavourite ContactViewModel (которые выполняются с помощью пользовательского интерфейса), вызывали обновление в свойстве isFavourite< контакта /code> (оно может выполнять дополнительную логику внутри установщика). Вышеупомянутое не работает, поскольку я просто передаю значение contact.isFavourite в качестве параметра в mutableStateOf.
Я, возможно, ожидал бы метод, подобный приведенному ниже, который принимает само свойство в качестве параметра.

Код: Выделить всё

class ContactViewModel(contact: Contact) : ViewModel() {
var isFavourite by mutableStateFromProperty(contact::isFavourite)
}
Есть ли какой-нибудь способ это сделать или, может быть, я просто пропустил метод, аналогичный описанному выше?


Подробнее здесь: https://stackoverflow.com/questions/786 ... her-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»