如何在android中调用带有字符串名称的资源?

Sun*_*Lee 2 resources mp3 android

我现在尝试调用资源(在我的应用程序中它们是 mp3 文件和图像)。对于 mp3 文件部分,我的代码是这样的(显然不起作用!)

if(i==1)
{
hoho= MediaPlayer.create(getApplicationContext(), R.raw.univ_day1);
hoho.start();
}
else if (i==2)
{
hoho= MediaPlayer.create(getApplicationContext(), R.raw.univ_day2);
hoho.start();  
}
Run Code Online (Sandbox Code Playgroud)

...

在我的应用程序中,应用程序内有数百个 mp3 文件。所以我想做的就是将代码简要总结为这样的内容。

hoho=MediaPlayer.crate(getApplicationContet(), R.raw.univ_day+"i"); //This also looks really awkward.
Run Code Online (Sandbox Code Playgroud)

如果我知道如何像上面那样写下代码就好了。如何处理原始文件的名称和“R.raw ....”之类的形式?如果我能做到,那么我也可以对图像资源应用类似的方法。

小智 6

您可以使用方法通过名称获取资源 ID public int getIdentifier (String name, String defType, String defPackage)。例如:

int id = getResources().getIdentifier("univ_day"+i, "raw", getPackageName());
hoho = MediaPlayer.create(getApplicationContext(), id);
Run Code Online (Sandbox Code Playgroud)