
我想制作折线图,但我有问题在xAxis中显示值字符串,我使用library Github从MPAndroidChart到lineChart.请帮我如何添加字符串值,实际上我想问的问题
private voID drawlineChartline(){ private float[] yDataL = {40, 60, 70, 80}; private String[] xDataL = {"Week 1", "Week 1" , "Week 3" , "Week 4"}; ArrayList<Entry> yEntrys = new ArrayList<>(); final ArrayList<String> xEntrys = new ArrayList<>(); for(int i = 0; i < yDataL.length; i++){ yEntrys.add(new Entry(yDataL[i] ,i)); } for(int i = 1; i < xDataL.length; i++){ xEntrys.add(xDataL[i]); } //create the data set lineDataSet lineDataset = new lineDataSet(yEntrys, "assa"); XAxis xAxis = lineChart.getXAxis(); xAxis.setposition(XAxis.XAxisposition.BottOM); xAxis.setDrawGrIDlines(false); xAxis.setValueFormatter(new IAxisValueFormatter() { @OverrIDe public String getFormattedValue(float value, AxisBase axis) { return xEntrys.get((int) value); } }); lineData lineData = new lineData(lineDataset); lineChart.setData(lineData); lineChart.invalIDate();}我收到了错误
InvalID index 40, size is 6
在代码中
xAxis.setValueFormatter(new IAxisValueFormatter() { @OverrIDe public String getFormattedValue(float value, AxisBase axis) { return xEntrys.get((int) value); } });解决方法:
您正在访问超出范围的ArrayList索引,因为您尝试使用value作为索引.您需要找到值的索引才能返回它.
xAxis.setValueFormatter(new IAxisValueFormatter() { @OverrIDe public String getFormattedValue(float value, AxisBase axis) { for (int i = 0 ; i < yEntrys.size(); ++i) { if (yEntrys.get(i).equals(value)) { return xEntrys.get(i); } } return null; }}); 总结 以上是内存溢出为你收集整理的如何在MPAndroidChart中设置xAxis的字符串值?全部内容,希望文章能够帮你解决如何在MPAndroidChart中设置xAxis的字符串值?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)