2017-02-12 27 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資源標識符轉換爲您當前配置的相應字符串。

相關問題