Commencez un nouveau projet à Kotlin et ne les retrouvez plus.
Essayez d’obtenir des ressources de tableau de chaînes mais ne le pouvez pas.
Dans strings.xml, j'ai palissé les éléments suivants.
<string-array name="themeList">
<item>white</item>
<item>sepia</item>
<item>black</item>
<item>pink</item>
</string-array>
Dans le code, j'essaie ensuite:
val res: Resources = resources
val appThemeList = arrayOf(res.getStringArray(R.array.themeList))
for (value in appThemeList) {
Log.i ("value", value.toString())
}
Mais je vois dans logCat:
I/value: [Ljava.lang.String;@40145f2
Et je ne comprends pas ce que je fais mal.
remplacer
val appThemeList = arrayOf(res.getStringArray(R.array.themeList))
à
val appThemeList = res.getStringArray(R.array.themeList)
Dans le cas où vous avez un tableau
val myArray = res.getStringArray(R.array.themeList) //already array
Et ajouté à un autre tableau
arrayOf(myArray) // array of arrays
Comme nous le savons, res.getStringArray
return arraylist
, vous n'avez donc pas besoin d'écrire arrayOf
sur votre code.
Un moyen simple pour atteindre votre objectif est: -
val list = res.getStringArray(R.array.list);
Nous pouvons utiliser arrayOf quand nous devons définir notre tableau ou si nous avons déjà une liste comme ci-dessous: -
val myArray = arrayOf(4, 5, 7, 3);
Dans l'utilisation de kotlin:
var yourVar = resources.getStringArray(R.array.your_string_array)
Essaye ça,
val Lines = Arrays.asList(resources.getStringArray(R.array.list))