Я пытаюсь преобразовать перечисление в список строк, которые будут использоваться в раскрывающемся меню, а затем будут выбраны и сохранены.
Перечисление и метод преобразования...
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», которые меня просит добавить ошибка, мое приложение выдаст следующее:

Мобильная версия