为什么.getIdentifier()从类中检索一个数字?

时间:2017-02-12 23:22:35

标签: android string class identifier

当我尝试从活动中获取字符串时,“getIdentifier”工作正常:

Toast.makeText(this,getResources()。getIdentifier(“frase”,“string”,getPackageName()),Toast.LENGTH_SHORT).show();

但是当从非活动类中尝试它时,它会检索一个数字(例如:2131099793):

getContext()。getResources()。getIdentifier(“frase”,“string”,getContext()。getPackageName();

为什么会这样?

1 个答案:

答案 0 :(得分:1)

getIdentifier()会返回int,您可以在the JavaDocs中看到。 int是资源的标识符。在您的情况下,它与int的{​​{1}}相同。

在您的第一个代码段中,您将该资源标识符传递给R.string.fraseToast.makeText()假设如果您传递makeText()int是字符串资源标识符,那么它会查找字符串资源并使用它。

在您的第二个代码段中,您只是使用int。使用intgetString()资源标识符转换为当前配置的相应字符串。