Набор комбинированных диаграмм и набор линий MPAndroid для линейки - PullRequest
0 голосов
/ 22 мая 2019

Я нахожусь в проекте, который должен раздуть комбинированную диаграмму (StackedBar Chart + Line Chart), используя MPAndroid Chart.

Я застрял в setOnChartValueSelectedListener, хотя.

I 'Я уже закончил с первым столбцом с накоплением 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.Любое решение будет оценено.

...