Создайте настройки для приложения, используя модель представления и класс данных.Android

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

Сообщение Anonymous »

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

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

class SettingsActivity : ComponentActivity()
val gameViewModel: GameViewModel = viewModel()`
val langs = gameViewModel.getoneywordsallChange()

Column{
for(lang in langs){
Row(modifier = Modifier.padding(10.dp).fillMaxWidth()){
Box(modifier=Modifier.size(25.dp))
Text(text = lang, fontSize = 18.sp, modifier = Modifier.padding(10.dp))
}
}
Row(modifier = Modifier.padding(10.dp).fillMaxWidth()){
val mainButtonColor = ButtonDefaults.buttonColors(
containerColor = androidx.compose.ui.graphics.Color.Black,
contentColor = MaterialTheme.colorScheme.surface
)

Button(
colors = mainButtonColor,
modifier = Modifier
.weight(1f)
.shadow(3.dp),

//.height(500.dp),

onClick = {
gameViewModel.oneywordsallChange("test word")
}
) {
Text("add word",  color = Color.Green)
}
}
Мой класс модели

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

class GameViewModel : ViewModel() {
private val _uiState = MutableStateFlow(GameUiState())
val uiState: StateFlow = _uiState.asStateFlow()

var allkeyWords : MutableSet = mutableSetOf()
private set

fun oneywordsallChange(newValue: String) {
allkeyWords.add(newValue)
}

fun  getoneywordsallChange(): (MutableSet) {
return allkeyWords
}
Мой класс данных

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

data class GameUiState(
val allkeyWords: Set = setOf( "animal", "auto", "anecdote", "alphabet" ))
У меня это не работает. Прошу прощения, если это вопрос первоклассника. Мне кажется, что в MainViewModel я неправильно работаю с классом даты.

Подробнее здесь: https://stackoverflow.com/questions/783 ... data-class
Ответить

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

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

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

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

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