根据Android中的数字选择原始文件

时间:2011-10-28 20:47:07

标签: android media-player

在这个项目的原始文件夹中,有43个文件的名称从note1到note43。当给定一定数量的音符使用媒体播放器播放时,需要使用R.raw.filename。如何使用变量代替名称?例如:

int soundNum = 23;
String vaiableName = "note" + soundNum;
mp = MediaPlayer.create(this, R.raw.variableName);

2 个答案:

答案 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)