android 如何获取资源id,android – 从值获取资源ID

在Android应用中,开发者遇到一个问题,尝试通过资源名称获取资源ID,但使用`getIdentifier`方法总是返回0。问题在于当前语言的特定资源文件中没有找到该值,而该值存在于其他语言的文件中。开发者希望找到一个方法来正确地查找并转换这个资源到当前语言。
摘要由CSDN通过智能技术生成

我确实有很多语言具体的资源.在我的

Android应用程序中有一点我得到一个资源值,需要将该值转换为匹配的ID.该值不一定在当前语言的特定于语言的文件(en / de / …)中.它在那里的某个地方,它是独一无二的.

阅读文档和这个线程“How to get a resource id with a known resource name?”后,我以为getIdentifier(String name,String defType,String defPackage)是正确的方法,但是我无法使它工作.结果始终为“0”.

此代码是活动的一部分,我在Android 2.2上.

Android可能不会将所有资源文件纳入考虑范围,并且仅搜索当前的特定语言文件?

例如(当前的语言是“de”):

File: values-en/strings.xml

A first text

A second text

File: values-de/strings.xml

Ein erster Text

Ein zweiter Text

// Now I want to find the ID to this "en" text ...

String testValue = "A second text";

int i = this.getResources().getIdentifier(testValue, "strings", this.getPackageName());

// ... and translate it to the actual "de" language

String translatedValue = this.getResources().getString(i);

使事情清晰我不想错过使用字符串资源作为数据库.这只是在极少数情况下发生的一部分.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值