Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/322.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 MPChart IndexOutOfBoundsException:索引:25,大小:25_Java_Android_Mpandroidchart - Fatal编程技术网

Java MPChart IndexOutOfBoundsException:索引:25,大小:25

Java MPChart IndexOutOfBoundsException:索引:25,大小:25,java,android,mpandroidchart,Java,Android,Mpandroidchart,在Android中使用MPCharts绘制线条图,其抛出的“IndexOutOfBoundsException:索引:25,大小:25”。已经过了示例,但仍然得到相同的错误。找到下面的代码 private void drawLineChart() { List<Entry> entries = new ArrayList<Entry>(); System.out.println("valueList"+valueList.size());

在Android中使用MPCharts绘制线条图,其抛出的
“IndexOutOfBoundsException:索引:25,大小:25”
。已经过了示例,但仍然得到相同的错误。找到下面的代码

 private void drawLineChart() {

    List<Entry> entries = new ArrayList<Entry>();

    System.out.println("valueList"+valueList.size());

    for (int i = 0; i <= valueList.size(); i++){

        entries.add(new Entry(valueList.get(i),(float)i));

    }

    LineChart lineChart = findViewById(R.id.myLineChart);
    Description description = new Description();
    description.setText("My Line Chart");
    lineChart.setDescription(description);

    LineDataSet lineDataSet = new LineDataSet(entries, "Line chart");
    lineDataSet.setDrawFilled(true);
    lineDataSet.setColors(ColorTemplate.COLORFUL_COLORS);

    LineData lineData = new LineData(lineDataSet);
    lineData.setValueFormatter(new ReportChartXAxisValueFormater(getXAxisValues()));

    lineChart.setData(lineData);
    lineChart.animateXY(2000,2000);
    lineChart.invalidate();

} 
private void drawLineChart(){
列表项=新的ArrayList();
System.out.println(“valueList”+valueList.size());
对于(int i=0;i)解
更改您的条件(低于或等于)

大小为
5
(因为您有
5
元素)

但最后一个索引是
4
。这就是迭代器无法达到列表大小的原因。

这就是问题所在

for (int i = 0; i <= valueList.size(); i++)

for(int i=0;i索引从零开始,以大小1结束

for (int i = 0; i <= valueList.size(); i++){...

for(int i=0;i你有
for(int i=0;i)在发布之前,你可以在谷歌上搜索,这是一个常见的问题,你实际上传递了25个值,它的索引以0开始,以(25-1)结束因此,要访问第25个元素,您需要使用24个索引。正如其他人所提到的,列表中的值的数量仍然是
25
,但索引以
0
开始,因此最后一个索引是
24
。您不需要进行任何其他更改,而只需进行我们答案中提到的更改,即替换
添加的解释
//      change char here (from <=  to  < )
//                ||
//                \/
for (int i = 0; i < valueList.size(); i++){
    // your code there
}
element:   "ABC",     "DEF",     "GHI",     "JKL",     "MNO",  
position:    0          1          2          3          4
for (int i = 0; i <= valueList.size(); i++)
for (int i = 0; i < valueList.size(); i++)
for (int i = 0; i <= valueList.size(); i++){...