资源.getIdentifier替代

0 人关注

我有一些ImageViews(大约10个),我想在代码中进行操作。我想用 Resources.getIdentifier 的方法来循环查找视图,而不是一行一行地查找它们。然而,根据《中国计算机报》的报道,这是不可取的。 正式文件 :

注意:不鼓励使用这个函数。按标识符检索资源比按名称检索要有效得多。 按标识符检索资源要比按名称检索更有效。

是否有更快、更有效的方法可用,或者我最好手动找到我的视图(不循环)?

4 个评论
绕过ID。 你不需要在名字上循环。
我不确定我是否理解你的意思。如果我使用getIdentifier方法并改变连接的值,我不是在循环使用这些ID吗?
你会用findViewByID方法在id上循环。 你把ID做成一个数组,然后在数组上循环,对每个ID进行findViewById操作。 没有必要进行连接。
明白了。是的,那会更快。我想我不能循环寻找ID,是吗?因为它们是由安卓生成的,而获取它们可能会使用getIdentifier方法?
android
performance
StaticCrazee
StaticCrazee
发布于 2018-08-10
1 个回答
Uddhav P. Gautam
Uddhav P. Gautam
发布于 2022-11-07
已采纳
0 人赞同

到目前为止,我发现了两个替代品!( 让我们假设你的文件名是 product_json.json )

  • 你可以把一个文件名为 product_json res/raw 文件夹中,按以下方式访问。

    val inputStream: InputStream = resources.openRawResource(R.raw.product_json)

  • 或者,你可以把你的文件放在 assets 文件夹中(如果不存在,那么欢迎你创建一个!),如下图所示。

  •