Malheureusement, je n'ai pas trouvé de réponse à cette question sur SO ou ailleurs.
J'étudie Kotlin et le développement Android et je me demande comment je peux insérer la valeur d'une variable dans le nom d'une autre variable. Ou s'il existe une autre solution, meilleure, pour résoudre le problème que je rencontre.
Supposons que mon code ressemble à ceci :
...
private fun rollDice() {
// Create new Dice object with 6 sides and roll the dice
val dice = Dice(6)
val diceRoll = dice.roll()
// Find the ImageView in the layout
val diceImage: ImageView = findViewById(R.id.imageView)
// Determine which drawable resource ID to use based on the dice roll
val drawableResource = when (diceRoll) {
1 -> R.drawable.dice_1
2 -> R.drawable.dice_2
3 -> R.drawable.dice_3
4 -> R.drawable.dice_4
5 -> R.drawable.dice_5
else -> R.drawable.dice_6
}
// Update the ImageView with the correct drawable resource ID
diceImage.setImageResource(drawableResource)
// Update the content description
diceImage.contentDescription = diceRoll.toString()
}
...
Je me demande si dans le "Déterminer l'ID de la ressource à utiliser en fonction du résultat du dé". Je pourrais en fait utiliser quelque chose comme ceci (aussi, désolé, je ne connais pas encore la syntaxe correcte) :
val drawableResource = R.drawable.{"dice_"+ diceRoll.toString()}
De cette façon, j'aurais pu gagner beaucoup d'espace et rendre le code facilement extensible. Si, par exemple, j'avais un dé à 20 faces, j'aurais toujours eu besoin de cette seule ligne de code.
Sinon, j'aurais dû ajouter
when(diceRoll){
...
20 lines of code here
...
}
Comment puis-je résoudre ce problème ? Merci.