Ошибка Kotlin mutablestateof при сохранении состояния строкиAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Ошибка Kotlin mutablestateof при сохранении состояния строки

Сообщение Anonymous »


Я пытаюсь преобразовать перечисление в список строк, которые будут использоваться в раскрывающемся меню, а затем будут выбраны и сохранены.

Перечисление и метод преобразования...

enum class PracticeType(val упражнение: String) { СУНДУК("Сундук"), НОГА("Нога"), ARMS("Оружие"), ЯДРО("Ядро"), LOWER_BODY("Нижняя часть тела"), UPPER_BODY("Верхняя часть тела") } весело getExercisionTypesAsStrings() : List { вернуть УпражнениеТип.значения().карта {it.упражнение} } Здесь я получаю преобразованные перечисления, преобразованный массив, который будет использоваться в функции muteableStateOf. Вот в чем проблема. Ему это почему-то не нравится и он спрашивает «Тип TypeVariable(T)» не имеет метода getValue(Nothing?, KProperty) и поэтому не может служить делегатом»

val упражнениеTypeValues ​​= getExercisionTypesAsStrings().toTypedArray() // перечисление преобразуется в массив var упражненияType от RememberSaveable {mutableStateOf(упражнениеTypeValues[0])} Проблему вызывает строка «var упражненияТип от RememberSaveable...».

И я планирую использовать это значение в этой составной функции

@Composable весело УпражнениеТипВход( значения: ArrayList, модификатор: Модификатор, updateExercisionType: (String) -> Единица измерения ) { КнопкаСпиннер( предметы = значения, модификатор = модификатор, itemClick = { updateExercisionType(оно) } ) } Где будет раскрывающийся список, а затем можно будет выбрать значение (обновив выбранный тип упражнения), которое будет использоваться для сохранения.

Не совсем понимаю, где я ошибаюсь, поскольку следую руководству, в котором это написано почти дословно, за исключением того факта, что они получают массив строк из ArrayStringResource в своей папке res следующим образом:

varvalues ​​= stringArrayResource(R.array.gender_array) val гендерЗначения = значения.copyOfRange(1, значения.размер) var пол от RememberSaveable {mutableStateOf(genderValues[0]) } Надеюсь, вы заметили, насколько похожи эти две реализации (в том, что они получают массив строк, а затем используют muteablestate для запоминания позиции в этом массиве). Однако второй пример работает, и я не понимаю, почему.

Если я добавлю методы «getValue» и «setValue», которые меня просит добавить ошибка, мое приложение выдаст следующее:


Изображение

Ответить

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

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

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

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

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