我在一个需要使用MPAndroid图表为组合图表(StackedBar图表+折线图)充气的项目中。
我被困在setOnChartValueSelectedListener
中。
我已经选择了第一个Xaxis堆叠条并选择了第二个Xaxis堆叠条,应该再将其绘制在第一个堆叠条之上。
private void generateCombinedChart(LinearLayout linearChart,
int counte,
float[] firstDataTotal,
final float[] firstDataStacked,
float[] secondDataStacked,
final String[] label,
final double[] arraayStacked1,
final double[] arrayStacked2
){
View view = LayoutInflater.from(mContext).inflate(R.layout.item_combined_chart, linearChart, false);
mChart = (CombinedChart) view.findViewById(R.id.chart);
mChart.getDescription().setEnabled(false);
mChart.setDrawBarShadow(false);
mChart.setDrawGridBackground(false);
mChart.setDrawValueAboveBar(true);
mChart.setHighlightFullBarEnabled(false);
mChart.setPinchZoom(false);
mChart.getAxisLeft().setLabelCount(8, false);
mChart.getAxisLeft().setValueFormatter(new id.co.bri.brisim.ui.view.custom.LargeValueFormatter());
mChart.getAxisLeft().setPosition(YAxis.YAxisLabelPosition.OUTSIDE_CHART);
mChart.getAxisLeft().setSpaceTop(15f);
mChart.getAxisLeft().setAxisMinimum(0f); // this replaces setStartAtZero(true)
mChart.getAxisLeft().setEnabled(true);
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, Highlight h) {
for(int i = 0; i < firstDataStacked.length; i++){
if(e.getX() == i) {
Toast.makeText(mContext, " " + Util.priceWithoutDecimal(arraayStacked1[i]), Toast.LENGTH_SHORT).show();// TOAST IT
}
}
}
@Override
public void onNothingSelected() {
}
});
/**
* Draw bars behind lines
*/
mChart.setDrawOrder(new CombinedChart.DrawOrder[]{
CombinedChart.DrawOrder.BAR,
CombinedChart.DrawOrder.LINE
});
araayStacked1
用于给第一个Xaxis堆叠的条和
arrayStacked2
用于给第二个Xaxis堆叠的条形图上方
我可以做arrayStacked1
,但是我不能做arrayStacked2
。任何解决方案将不胜感激。