Как изменить текст составного текста при нажатии кнопки при использовании strings.xmlAndroid

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

Сообщение Anonymous »

У меня возникли проблемы с выяснением того, как сделать то, что я хочу здесь... Я хочу изменить текст в Text Composable, когда я нажимаю кнопку, но я не могу заставить его работать, потому что я не не знаю, как ссылаться на данный текст. Компонуемый из onClick моей кнопки. В частности, я хочу написать код после строки
var mult: Double = typeMatchups[attackType][defenseType] * typeMatchups[attackType][defenseType2]
чтобы изменить текст текста, прокомментированного как «Отобразить результат здесь». Я не понимаю, как я могу это сделать, поскольку Composables возвращает Unit, а не ссылку на созданный объект, а также существует проблема, заключающаяся в том, что я не могу использовать stringResource() внутри onClick потому что это не составная функция. Вот мой код, значения itemList опущены, чтобы немного уменьшить размер моего сообщения, как и значения typeMatchups, который представляет собой 2D-массив Double< /code>s.
Что касается кода DropdownList Composable, я взял его с этого сайта.
@Composable
fun ContentView() {
val itemList = listOf(...)

var selectedIndex by rememberSaveable { mutableStateOf(0) }
var selectedIndex2 by rememberSaveable { mutableStateOf(0) }
var selectedIndex3 by rememberSaveable { mutableStateOf(0) }
val norm = 1.0
val weak = 0.5
val strg = 2.0
val inef = 0.0
val typeMatchups = arrayOf(...)
val buttonModifier = Modifier.width(100.dp)

Column(
modifier = Modifier,
horizontalAlignment = Alignment.CenterHorizontally,
verticalArrangement = Arrangement.Center
) {
//Start of 1st Row
Row {
Text(text = stringResource(R.string.attack_type))
DropdownList(
itemList = itemList,
selectedIndex = selectedIndex,
modifier = buttonModifier,
onItemClick = { selectedIndex = it },)
}
//End of 1st Row
//Start of 2nd Row
Row {
Text(text = stringResource(R.string.defending_type_1))
DropdownList(
itemList = itemList,
selectedIndex = selectedIndex2,
modifier = buttonModifier,
onItemClick = { selectedIndex2 = it })
}
//End of 2nd Row
//Start of 3rd Row
Row {
Text(text = stringResource(R.string.defending_type_2))
DropdownList(
itemList = itemList,
selectedIndex = selectedIndex3,
modifier = buttonModifier,
onItemClick = { selectedIndex3 = it })
}
//End of 3rd Row

// Text Composable showing selected types
Text(
text = stringResource(
R.string.selected_types,
itemList[selectedIndex],
itemList[selectedIndex2],
itemList[selectedIndex3]
),
textAlign = TextAlign.Center,
modifier = Modifier
.padding(3.dp)
.fillMaxWidth()
.background(Color.LightGray),
)
Button(onClick = {
val attackType = selectedIndex
val defenseType = selectedIndex2
val defenseType2 = selectedIndex3

var mult: Double = typeMatchups[attackType][defenseType] * typeMatchups[attackType][defenseType2]

}) {

Text("Filled")
}*/
//Display result here
Text(text = stringResource(R.string.button_default))
}
}


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

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

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

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

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

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