【发布时间】:2021-12-29 01:10:44
【问题描述】:
我正在使用SharedPreferences 将 Drawable 数组保存为 Int(稍后用于设置 setImageResource)
我需要在 SharedPreferences 上执行一些逻辑,要求我获取实际文件名,而不是可绘制对象的 Int 表示。
我的代码如下:
val imagesFromSaved = PrefsContext(context).savedLocations
imagesFromSaved 打印以下内容:
[2131135903, 2131165414, 2134135800, 2131765348]
我需要能够打印实际的文件名。像这样。
["image_one", "image_two", "image_three", "image_four"]
我得到的最接近的是使用getString 和一个Int。但我不确定如何遍历数组中的所有项目以将所有内容转换为字符串表示形式。
val test = context.resources.getString(2131135903)
打印:res/drawable-nodpi-v4/image_one.webp
如何迭代我的SharedPreferences 以生成一个可绘制文件名数组,而不是资源的 Int 表示?
【问题讨论】:
-
您需要
resources.getResourceEntryName()函数。 -
@MikeM。我是否只需使用 for 循环从 imagesFromSaved 创建新的字符串数组?
-
对不起,我没有意识到循环是未知的一部分。 Sergey 在下面的回答中有一个恰当的例子。
标签: android arrays loops kotlin sharedpreferences