gpt4 book ai didi

android - getIdentifier() 总是返回 0

转载 作者:太空狗 更新时间:2023-10-29 16:42:47 59 4
gpt4 key购买 nike

我正在尝试从 strings.xml 中获取值为“Hello”的字符串的 ID,执行以下操作:

getContext().getResources().getIdentifier("Hello", "string", getContext().getPackageName());

它返回 0。为什么返回 0?

最佳答案

因为您传递的是字符串,而您应该传递字符串的资源名称

查看方法签名:getIdentifier(String name, String defType, String defPackage) .

当找不到资源时,返回 0,这与您遇到的情况一致。

编辑:

  1. 不鼓励使用 getIdentifier() - 引用引用:

    Note: use of this function is discouraged. It is much more efficient to retrieve resources by identifier than by name.

  2. 我不知道有什么直接的方法可以根据相关字符串的值获取字符串的 ID。但是我看到了两种解决方法/技巧:

    1. 命名所有您希望执行查找的字符串,如下所示:stringN 其中 N 例如是基于 0 的整数,对于每个字符串递增字符串。您最终会得到像 string0string1 等丑陋的名称。然后您自己进行查找 - 您迭代 N,创建字符串 ID: stringN,获取它的值并检查是否匹配。在我看来,这很丑陋。

    2. 使用 Typed Array资源并将所有字符串放在那里。它与方法 1 基本相同,但避免了创建讨厌的、污染资源的名称。

关于android - getIdentifier() 总是返回 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15007419/

59 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com