在这个项目的原始文件夹中,有43个文件的名称从note1到note43。当给定一定数量的音符使用媒体播放器播放时,需要使用R.raw.filename。如何使用变量代替名称?例如:
int soundNum = 23;
String vaiableName = "note" + soundNum;
mp = MediaPlayer.create(this, R.raw.variableName);
答案 0 :(得分:1)
我认为这就是你要找的东西。
public static int getResId(String variableName, Class<?> c) {
Field field = null;
int resId = 0;
try {
field = c.getField(variableName);
try {
resId = field.getInt(null);
} catch (Exception e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
return resId;
}
在你的情况下:
mp = MediaPlayer.create(this, getResId(vaiableName, R.raw.class));
我想我在SO或其他网站的不同帖子中发现了这段代码,所以这些信用归他/她所有。我在很多Android项目中使用它。
答案 1 :(得分:0)
使用Resource.getIdentifier() API。