Android:资源标识返回int值的ArrayList
问题描述:
我想存储数组中的一些mp3文件的资源标识符。 这是代码。Android:资源标识返回int值的ArrayList
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);
我的n使用childsound变量初始化媒体播放器
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();
}
});
但该函数返回像一个int值“213736282”我发现了这一点,而试图调试。 但我不明白为什么它这样做,我可以做些什么来从函数获取我的资源标识符。 任何帮助是完全赞赏。 谢谢。
编辑: 错误实际上是在代码的另一部分,所以上面的代码是正确的。谢谢
请参阅读取MP3 [**如何创建一个最小的,完整的,并且可验证例如**](HTTPS: //stackoverflow.com/help/mcve) –
发布这里使用的所有变量的声明,所以我们知道它们的类型。 – Neo
你确实得到它。是什么让你觉得有问题? – Oleg