You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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轴标签列表,没必要转成数组,反而触发了构造函数不匹配的错误。

具体修改步骤

你只需要调整两行代码:

  1. 删除把xAxis1转成String数组的那行代码:
// 删掉这一行:
String names[]= xAxis1.toArray(new String[xAxis1.size()]);
  1. 直接用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,提问作者Мансур Хаиров

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:19:46