Kotlin中的字符串数组

ber*_*ozz 6 arrays string android kotlin android-resources

在Kotlin开始新项目并错过了那些项目.

尝试获取字符串数组资源但不能.

在strings.xml中,我找到了下一个项目.

<string-array name="themeList">
    <item>white</item>
    <item>sepia</item>
    <item>black</item>
    <item>pink</item>
</string-array>
Run Code Online (Sandbox Code Playgroud)

在代码中我尝试下一步:

val res: Resources = resources
val appThemeList = arrayOf(res.getStringArray(R.array.themeList))

for (value in appThemeList) {
    Log.i ("value", value.toString())
}
Run Code Online (Sandbox Code Playgroud)

但是在logCat中我看到:

I/value: [Ljava.lang.String;@40145f2
Run Code Online (Sandbox Code Playgroud)

而且我不明白,我做错了什么.

And*_*lov 12

更换

val appThemeList = arrayOf(res.getStringArray(R.array.themeList))
Run Code Online (Sandbox Code Playgroud)

val appThemeList = res.getStringArray(R.array.themeList)
Run Code Online (Sandbox Code Playgroud)

在其他情况下,你有阵列

 val myArray = res.getStringArray(R.array.themeList) //already array
Run Code Online (Sandbox Code Playgroud)

并添加到另一个数组

 arrayOf(myArray) // array of arrays
Run Code Online (Sandbox Code Playgroud)


Sub*_*uja 7

在 android 中,当像这样Activity之外时依赖于上下文

val themes = context.resources.getStringArray(R.array.themeList)
Run Code Online (Sandbox Code Playgroud)

Activity内部时,或没有上下文直接指向资源

val themes = resources.getStringArray(R.array.themeList)
Run Code Online (Sandbox Code Playgroud)