2017-02-12 29 views
0

当我尝试从活动中得到一个字符串 “则getIdentifier” 工作正常。为什么.getIdentifier()从类中检索一个数字?

Toast.makeText(这一点,getResources()则getIdentifier( “frase”, “串”,getPackageName()),吐司。 LENGTH_SHORT).show();

但是,当来自非活性类尝试它,它retreive的数字(例如:2131099793):。

的getContext()getResources()则getIdentifier( “frase”, “串” 的getContext()getPackageName ();

为什么会发生这种情况

+1

如果你想得到一个字符串,使用getString() –

回答

1

getIdentifier()返回int,因为你可以在the JavaDocs看到int是资源的标识符。在你的情况,这是相同的intR.string.frase是?。

在您的第一个代码片段中,您将该资源标识符传递给Toast.makeText()makeText()假定如果您通过int,那么int是一个字符串资源标识符,因此它查找字符串资源并使用它。

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

相关问题