Как получить индекс X в диаграмме MP Android P ie? - PullRequest
0 голосов
/ 28 мая 2020

Я делаю функцию, чтобы помочь людям идентифицировать каждый фрагмент диаграммы p ie с его значением с помощью прослушивателя кликов. Проблема в том, что он возвращает ТОЛЬКО значение первой компании, независимо от того, имеет ли значение вторая компания или нет.

Кроме того, журналы показывают следующее: «I / DEPRECATED: P ie записи не имеют значений x»

«entry.getX()» - это то, как я идентифицировал срезы в прошлом. Этот код, несомненно, будет работать, если это гистограмма, но это не то, что нужно делать. Все, что он делает на диаграммах P ie, это возвращает первое значение записи и ничего более.

Версия MP android Chart, которую я использую, - это версия 3.1.0.

Это мой код ниже

//Chart click listener that displays the percentage when clicked
piechart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {

    @Override
    public void onValueSelected(Entry entry, Highlight highlight) {
        try {

            String company = null;
            Double formattedvalue = 0.0;
            float getval = entry.getY();
            testformat = new DoublePercentConverter();
            if (entry.getX() == 0) {
                company = “Company 1” + " ";

            } else {
                company = “Company 2” + " ";
            }
            formattedvalue = testformat.convertvalue(getval);


            AlertDialog.Builder a_builder545 = new AlertDialog.Builder(activity1.this);
            a_builder545.setMessage(company + Double.toString(formattedvalue) + "%").setCancelable(false)
                    .setPositiveButton(ok, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                            piechart.highlightValues(null);
                            piechart.invalidate();
                        }
                    });

            AlertDialog alert743 = a_builder545.create();
            alert743.setTitle(“Company info”);
            alert743.show();

        } catch (Exception eg) {
            eg.printStackTrace();
        }
    }

    @Override
    public void onNothingSelected() {

    }
});

1 Ответ

0 голосов
/ 23 июня 2020

У меня был момент неудачи, и я сделал очевидную ошибку

highlight.getX() - вот как вы получаете выбранный ярлык.

...