Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/223.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:ArrayList返回int值的资源标识符_Java_Android_Arrays_Android Resources - Fatal编程技术网

Java Android:ArrayList返回int值的资源标识符

Java Android:ArrayList返回int值的资源标识符,java,android,arrays,android-resources,Java,Android,Arrays,Android Resources,我试图将一些mp3文件的资源标识符存储在一个数组中。 这是代码 private HashMap<String,List<Integer>> listHashMapnum; private List<String> listhead; listhead.add("Forty"); listhead.add("Fifty"); ArrayList<Integer> fortysound = new Arra

我试图将一些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中的值

 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();
        }

    });
但函数返回一个int值,如“213736282”。我在调试时发现了这一点。 但我不明白它为什么这样做,以及我可以做些什么来从函数中获取资源标识符。 非常感谢您的帮助。 多谢各位

编辑:
错误实际上在代码的另一部分,因此上面的代码是正确的。谢谢你

是的,你说得对。Android资源标识符是在R.java中生成和存储的整数值

您可以使用方法并读取资源


检查此项以从原始资源读取mp3

请查看此处使用的所有变量的声明,这样我们就知道了它们的类型。您确实了解了。是什么让你觉得有问题?@Oleg,因为应用程序一直在崩溃,当我尝试调试时,我发现childsound变量的int值看起来是“213585932”,你在用
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();
        }

    });