组合图表堆积+线MPAndroid图表设置为onValueSelected堆积条形图

时间:2019-05-22 07:47:35

标签: java android mpandroidchart stacked-chart combinedchart

我在一个需要使用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。任何解决方案将不胜感激。

0 个答案:

没有答案