gpt4 book ai didi

android - 当名称为数字时,Resources.getIdentifier() 具有意外行为

转载 作者:行者123 更新时间:2023-11-29 14:41:57 31 4
gpt4 key购买 nike

我使用 Resources.getIdentifier 动态加载字符串资源;因为我动态传递了一个需要从我的资源文件中翻译的字符串。资源不存在时返回0;所以我处理。但是,当我传入一个数字字符串时;即使我没有在我的资源中定义它,它也会返回我传入的数字而不是 0。这会在我尝试获取该资源时导致崩溃。

int identifier = context.getResources().getIdentifier(myText, "string", "com.farragut.android.emsspeak");
if (identifier > 0) {
text2.setVisibility(View.VISIBLE);
text2.setText(context.getResources().getString(identifier));
} else {
text2.setVisibility(View.GONE);
}

这是定义的行为吗??我无法想象为什么当 myText 是“BLAH”时它工作正常但是当 myText 是“12”时它是不同的。我唯一能想到的就是首先测试 myText 是否为数字;尽管我能找到的唯一方法是尝试将其解析为整数并捕获 numberFormatException。这是最好的解决方案吗?

最佳答案

这有点奇怪,但如果我像 getIdentifier() 文档中提到的那样指定完全限定名称,它会正常工作,否则我会得到与您相同的结果。

尝试使用 getIdentifier("com.farragut.android.emsspeak:string/"+myText, null, null);

关于android - 当名称为数字时,Resources.getIdentifier() 具有意外行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6387387/

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