如何将String转换为其资源ID(Android Studio)

gci*_*ffo 7 java android android-studio

我的values/strings.xml文件中有一个xml字符串

    <string name="pokemon_d">150</string>
Run Code Online (Sandbox Code Playgroud)

而且我的"150"控制器中有String MainActivity.java.在我MainActivity,我怎么能将它转换String为xml文件中pokemon_d字符串的资源ID?这甚至可能吗?

use*_*305 10

您不能按值获取标识符,但您可以使您的标识符名称看起来像一个值并通过字符串名称获取,

所以我建议,

使用你的String资源名称,如, resource_150

<string name="resource_150">150</string>

现在这里的文件中resource_的字符串条目很常见string.xml,所以在你的代码中,

String value = "150";
int resourceId = this.getResources().
             getIdentifier("resource_"+value, "string", this.getPackageName());
Run Code Online (Sandbox Code Playgroud)

现在resourceId价值相当于R.string.resource_150

只需确保这里this代表您的应用程序上下文.在你的情况下MainActivity.this将工作.