arrayListOf 显示 Int 而不是 String - Kotlin
arrayListOf showing Int rather than String - Kotlin
我正在尝试从字符串文件中获取字符串值,如下所示:
var language = arrayListOf<String>(
R.string.All_Categories.toString(),
)
但它显示的是 Int 而不是像这样的字符串:
我做错了什么?
R.string.All_Categories
是id,不是字符串本身
获取需要使用的字符串
var value = getString(R.string.All_Categories)
问题是您正在对生成的参考执行 toString
。如果这是您引用的数组的名称,您应该改用 R.array.All_Categories
。例如,资源文件中有以下内容。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="my_books">
<item>Scala Cookbook</item>
<item>Play Framework Recipes</item>
<item>How I Sold My Business: A Personal Diary</item>
<item>A Survival Guide for New Consultants</item>
</string-array>
</resources>
这就是您希望在代码中阅读的方式。
Resources res = getResources();
String[] myBooks = res.getStringArray(R.array.my_books);
片段中的 Kotlin 代码示例:
val res: Resources = resources
val myBooks: Array<String> = res.getStringArray(R.array.my_books)
您可以在 Array<String>
上使用 .toList()
将其转换为您所期望的 arrayListOf<String>
的集合对象。
解决方案:
首先,在OnCreate中必须定义字符串:
val Profile_Settings = resources.getString(R.string.ProfileSettings)
其次,将值添加到数组中:
var language2 = arrayListOf<String>(
Profile_Settings,
)
非常简单,您只需使用 getString(your_string_id)
就可以了!
看起来像这样:
val data = getString(R.string.all_categories)
我正在尝试从字符串文件中获取字符串值,如下所示:
var language = arrayListOf<String>(
R.string.All_Categories.toString(),
)
但它显示的是 Int 而不是像这样的字符串:
我做错了什么?
R.string.All_Categories
是id,不是字符串本身
获取需要使用的字符串
var value = getString(R.string.All_Categories)
问题是您正在对生成的参考执行 toString
。如果这是您引用的数组的名称,您应该改用 R.array.All_Categories
。例如,资源文件中有以下内容。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="my_books">
<item>Scala Cookbook</item>
<item>Play Framework Recipes</item>
<item>How I Sold My Business: A Personal Diary</item>
<item>A Survival Guide for New Consultants</item>
</string-array>
</resources>
这就是您希望在代码中阅读的方式。
Resources res = getResources();
String[] myBooks = res.getStringArray(R.array.my_books);
片段中的 Kotlin 代码示例:
val res: Resources = resources
val myBooks: Array<String> = res.getStringArray(R.array.my_books)
您可以在 Array<String>
上使用 .toList()
将其转换为您所期望的 arrayListOf<String>
的集合对象。
解决方案:
首先,在OnCreate中必须定义字符串:
val Profile_Settings = resources.getString(R.string.ProfileSettings)
其次,将值添加到数组中:
var language2 = arrayListOf<String>(
Profile_Settings,
)
非常简单,您只需使用 getString(your_string_id)
就可以了!
看起来像这样:
val data = getString(R.string.all_categories)