我正在扫描我的原始文件夹中的文件,我想将这些值分配给R.raw-path。
以原始文件列出文件的功能:
public void listRaw(){
Field[] fields=R.raw.class.getFields();
for(int count=0; count < fields.length; count++){
Log.i("R:", fields[count].getName());
}
}
为声池分配路径的代码
sp = new SoundPool(99, AudioManager.STREAM_MUSIC, 0);
sound1 = sp.load(this, R.raw.kick, 1);
我想要类似的内容:
“sound1 = sp.load(this,R.raw.fields [count] .getName(),1);”
答案 0 :(得分:1)
使用getIdentifier
方法使用名称访问id
文件:
int rawId = getResources().getIdentifier("raw/"+fields[count].getName(),
null, getPackageName());
sound1 = sp.load(this, rawId, 1);
答案 1 :(得分:0)
另一种选择可以是:
public void rawReflection() {
Field[] fields=R.raw.class.getFields();
for(int count=0; count < fields.length; count++){
Log.i("R:", fields[count].getName());
try {
//get the value(the ID) of the field
int value= fields[count].getInt(R.raw.class);
Log.i("value",value+"");
sound1 = sp.load(this, value, 1);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}