我可以使用宏变量来获取ID吗?

时间:2013-06-23 09:40:06

标签: android

通常,我们使用R.String.btnClose来获取ID 有些人,我希望使用以下代码来识别ID,我知道代码是错误的。 我不知道java是否支持宏var,如果是这样,我该如何编写代码?谢谢!

String s =“btnClose”
R.string.s

2 个答案:

答案 0 :(得分:1)

您可以尝试Resources.getIdentifier

的等价物
int id = R.string.btnClose;

将是

int id = getResources().getIdentifier("btnClose", "string", getPackageName());
  

注意:不鼓励使用此功能。按标识符检索资源比按名称检索资源要高效得多。

例如,您可以使用Map<String, Integer>从名称中返回您的ID。

答案 1 :(得分:0)

活动内部使用此:

String s = getString(R.string.btnClose );

不在活动中:

public String getText(Context context, int resourceId)
{
    Resources resources = context.getResources();
    return resources.getString(resourceId);
}

祝福。