通过Android字符串资源建立索引

时间:2010-05-30 10:29:54

标签: java android

好的,我有代码允许我索引字符串资源。现在,如何在不知道其名称的情况下获取特定资源项的值?

这是索引循环:

Field[] fLst = R.string.class.getFields();

for(Field f : fLst){

  Log.i(dbgTag, "Field Entry: R.string." + f.getName());

}

感谢您的努力...

1 个答案:

答案 0 :(得分:2)

首先,您知道资源的名称。你甚至把它放在你的Log电话中。因此,一种选择是在getIdentifier()对象上使用Resources(通常通过在getResources()或其他Activity上调用Context来获得)。

或者,假设您有Field个对象,请致电f.getInt(R.string.class)

在任何一种情况下(getIdentifier()getInt()),您现在都拥有资源的数字标识符,此时您可以在getString()上调用Activity来获取实际的String值。

使用反射 - 无论是直接还是通过getIdentifier() - 都会变慢。请尽可能避免使用您正在尝试的方法。如果您绝对必须使用反射,请务必缓存结果,这样您就不需要重复执行相同的查找。