MPAndroidChart v2.2.5中BarData构造函数无法解析问题求助
解决MPAndroidChart v2.2.5中BarData构造函数错误的问题
嘿,别着急,我来帮你搞定这个问题!你遇到的Cannot resolve constructor 'BarData(java.lang.String[], java.util.ArrayList<BarDataSet>)'错误,是因为在MPAndroidChart v2.2.5版本里,没有接受String数组 + ArrayList<BarDataSet>这个参数组合的BarData构造函数。
问题原因
这个版本的BarData类,针对x轴标签的参数,只接受List<String>(也就是你代码里的xAxis1这种ArrayList<String>类型),而不是你转换后的String数组。你本来已经有了现成的ArrayList<String>类型的x轴标签列表,没必要转成数组,反而触发了构造函数不匹配的错误。
具体修改步骤
你只需要调整两行代码:
- 删除把
xAxis1转成String数组的那行代码:
// 删掉这一行: String names[]= xAxis1.toArray(new String[xAxis1.size()]);
- 直接用
xAxis1作为BarData构造函数的第一个参数:
// 改成这样: data = new BarData(xAxis1, yAxis);
修改后的相关代码片段应该是这样的:
// ... 之前的解析JSON代码 ... BarDataSet barDataSet1 = new BarDataSet(yValues, "temper"); barDataSet1.setColor(Color.rgb(0, 82, 159)); yAxis = new ArrayList<>(); yAxis.add(barDataSet1); // 这里直接使用xAxis1,不需要转数组 data = new BarData(xAxis1, yAxis); chart.setData(data); chart.setDescription(""); chart.animateXY(2000, 2000); chart.invalidate(); pd.hide(); // ...
额外检查项
- 确保你导入的
BarData类是正确的:import com.github.mikephil.charting.data.BarData;,不要导入其他包下的同名类。 - 确认你的MPAndroidChart依赖确实是
com.github.PhilJay:MPAndroidChart:v2.2.5,没有错写成其他版本。
这样修改后,构造函数的参数类型就匹配了,错误应该就能解决啦!
内容的提问来源于stack exchange,提问作者Мансур Хаиров
相关产品推荐
相关产品推荐

