web-dev-qa-db-fra.com

Tableau de chaînes en Kotlin

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. 

4
berliozz

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
9
DEADMC

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);
1
duggu

Dans l'utilisation de kotlin:

var yourVar = resources.getStringArray(R.array.your_string_array)
0
MSilva

Essaye ça,

 val Lines = Arrays.asList(resources.getStringArray(R.array.list))
0
MSD