我正在尝试为数组中的某些mp3文件存储资源标识符。 这是代码。
private HashMap<String,List<Integer>> listHashMapnum;
private List<String> listhead;
listhead.add("Forty");
listhead.add("Fifty");
ArrayList<Integer> fortysound = new ArrayList<>();
fortysound.add(R.raw.forty);
ArrayList<Integer> fiftysound = new ArrayList<>();
fiftysound.add(R.raw.fifty);
然后我将数组列表存储在hashmap
中 listHashMapnum.put(listhead.get(0),fortysound);
listHashMapnum.put(listhead.get(1),fiftysound);
然后我使用函数来获取hashmap中的值
public Integer getChild2(int i, int i1) {
return listHashMapnum.get(listheader.get(i)).get(i1);
}
我从这个函数中得到了这个值
Integer childsound = (Integer) getChild2(i, i1);
然后我使用childsound变量初始化mediaplayer
Button bt;
bt = (Button) view.findViewById(R.id.speaker);
final MediaPlayer mp = MediaPlayer.create(context, childsound);
bt.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
mp.start();
}
});
但该函数返回一个类似于“213736282”的int值,我在尝试调试时发现了这一点。 但我不明白为什么它会这样做以及我可以做些什么来从函数中获取我的资源标识符。 任何帮助都完全赞赏。 谢谢。
编辑: 错误实际上是在代码的另一部分,所以上面的代码是正确的。谢谢
答案 0 :(得分:0)