如何从字符串数组在strings.xml中填充数字选择器

问题描述

我有一个数字选择器,可以从常规数组中毫无问题地填充它;但是,当我尝试本地化我的应用并将数组放置在strings.xml文件中时,挫折感就开始了。

这是一部分的strings.xml

<!--Set up arrays for the Number Pickers-->
    <string name="pieces">Pieces</string>
    <string name="kgs">Kgs</string>
    <string name="lbs">Lbs</string>
    <string name="oz">Oz</string>
    <string name="gal">gal</string>
    <string name="liters">Liters</string>
    <string name="pints">Pints</string>
    <string name="quarts">Quarts</string>
    <string name="fl_oz">Fl Oz</string>

    <string-array name="all_units">
        <item>@string/pieces</item>
        <item>@string/kgs</item>
        <item>@string/lbs</item>
        <item>@string/oz</item>
        <item>@string/gal</item>
        <item>@string/liters</item>
        <item>@string/pints</item>
        <item>@string/quarts</item>
        <item>@string/fl_oz</item>
    </string-array>

然后在MainActivity.kt中,这就是我所拥有的:

val allUnits = arrayOf("Pieces","Kgs","Lbs","Oz","gal","liters","pints","Quarts","Fl oz")
npUnitsA.minValue = 0
npUnitsA.maxValue = allUnits.size -1

npUnitsA.displayedValues = allUnits

这很好,但是如果我将最后一行更改为:

npUnitsA.displayedValues = R.array.all_units

我收到一条错误消息: 类型不匹配。 必填:Array ! 找到:Int

不用说我在Android上非常环保。任何帮助将不胜感激。

解决方法

R.javaint中包含标识符,因此预期会出现此错误。您可以在这里做什么

 getResources().getStringArray(R.array.all_units)

获取资源数组