Я делаю функцию, чтобы помочь людям идентифицировать каждый фрагмент диаграммы 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() {
}
});