Как с помощью Jetpack Compose сохранить значение текстового поля в динамически создаваемом классе? ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Как с помощью Jetpack Compose сохранить значение текстового поля в динамически создаваемом классе?

Сообщение Anonymous »

Я создал тестовое приложение для Android с помощью Jetpack Compose. Приложение состоит из столбца, содержащего динамически создаваемые текстовые поля. Каждое текстовое поле имеет экземпляр класса, который содержит свойства этого конкретного текстового поля. Класс создается динамически вместе с текстовым полем.
Проблема возникает, когда пользователь пытается ввести текст в текстовое поле. Никакого текста не появляется, текстовое поле остается пустым. Эта проблема возникает только в том случае, если переменная, содержащая значение, хранится внутри динамически создаваемого экземпляра класса, который создается внутри составного объекта. Если бы я создал один экземпляр вне составного объекта, все бы работало нормально.
Вот код класса, в котором хранится значение. Для простоты у него только одно свойство. В реальном приложении их будет больше.

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

class TextFieldLogic{
var value by mutableStateOf(TextFieldValue(""))
}
Вот код списка текстовых полей

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

var textFieldList by mutableStateOf(listOf())

Button(onClick = { textFieldList += TextFieldLogic() }) { Text("+") }

Column {
textFieldList.forEach { text ->
TextField(
value = text.value,
onValueChange = { text.value = it },
)
}
}
Это все, что касается кода. Как указано выше, при использовании этого метода ни одно нажатие клавиши не отображается в текстовом поле. Если у кого-нибудь есть решение, я буду рад его услышать.

Подробнее здесь: https://stackoverflow.com/questions/793 ... -a-dynamic

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