如何从字符串数组(在 strings.xml 中)填充数字选择器
How do I populate a number picker from a string-array (in the 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
我收到一条错误消息:
类型不匹配。
Required:Array<(输出) 字符串!>!
Found:Int
不用说我在 Android 很新手。任何帮助将不胜感激。
R.java
包含 int
中的标识符,因此预计会出现此错误。您可以在这里做的是
getResources().getStringArray(R.array.all_units)
获取资源数组
我有一个数字选择器,我可以毫无问题地从常规数组中填充它;然而,当我尝试本地化我的应用程序并将数组放在 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
我收到一条错误消息: 类型不匹配。 Required:Array<(输出) 字符串!>! Found:Int
不用说我在 Android 很新手。任何帮助将不胜感激。
R.java
包含 int
中的标识符,因此预计会出现此错误。您可以在这里做的是
getResources().getStringArray(R.array.all_units)
获取资源数组