2
PieChart에 문제가 있습니다. 내가 차트를 액티비티가 호출 될 때마다 업데이트하고 내가 함께이 일을 해요 :MPAndroidChart : PieChart onValueSelected가 호출되지 않았습니다.
private void setupPieChart() {
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
mChart.setLayoutParams(params);
mChart.setUsePercentValues(true);
/**
* Hide the Description and the Legend.
*/
mChart.setDescription("");
mChart.getLegend().setEnabled(false);
/**
* Hole in the middle.
*/
mChart.setDrawHoleEnabled(true);
mChart.setHoleRadius(50);
mChart.setTransparentCircleRadius(55);
mChart.setRotationAngle(0);
mChart.setRotationEnabled(true);
mChart.setOnChartValueSelectedListener(new OnChartValueSelectedListener() {
@Override
public void onValueSelected(Entry e, int dataSetIndex, Highlight h) {
switch (e.getXIndex()) {
case 0:
startLearning(e.getXIndex());
break;
case 1:
startLearning(e.getXIndex());
break;
case 2:
startLearning(e.getXIndex());
break;
case 3:
startLearning(e.getXIndex());
break;
case 4:
startLearning(e.getXIndex());
break;
default:
break;
}
}
@Override
public void onNothingSelected() {
System.out.println("onNothingSelected");
}
});
addDataForPieChart();
}
그리고 내가 함께 데이터를 추가 해요 :
private void addDataForPieChart() {
/**
* Data of the Chart.
*/
float[] value = mCurrentLearnSet.getCountFromLevel();
String[] names = {"First Level", "Second Level", "Third Level", "Forth Level", "Fifth Level"};
/**
* Create needed Entries.
*/
List<Entry> entries = new ArrayList<>();
List<String> strings = new ArrayList<>();
for (int i = 0; i < value.length; i++) {
if (value[i] != 0) {
entries.add(new Entry(value[i], i));
strings.add(names[i]);
}
}
/**
* Create pie data set.
*/
PieDataSet dataSet = new PieDataSet(entries, "Your Progress");
dataSet.setSliceSpace(3);
dataSet.setSelectionShift(5);
/**
* Setup Colors.
*/
dataSet.setColors(ColorTemplate.LIBERTY_COLORS);
/**
* Instantiate pie data object.
*/
PieData data = new PieData(strings, dataSet);
data.setValueFormatter(new PercentFormatter());
data.setValueTextSize(13f);
data.setValueTextColor(R.color.primary_text);
/**
* Set the Data to the PieChart.
*/
mChart.setData(data);
/**
* Undo all highlights.
*/
mChart.highlightValues(null);
/**
* Update pie chart.
*/
mChart.notifyDataSetChanged();
mChart.invalidate();
}
내 문제 것은 다음입니다 :
차트를 만들 때마다 차트에 다른 양의 조각이 있습니다. 때때로 OnChartValueSelectedListener()
이 올바르게 작동하지 않습니다. 슬라이스가 올바르게 표시되지만 onValueSelected()
메서드는 호출되지 않으므로 해당 메서드를 클릭 할 수 없습니다. 그래도 오류나 강조 표시는 없습니다. 그냥 onNothingSelected()
이 호출됩니다.
제발, 어떻게해야합니까?
들으, – ant45de
다행 내가 도울 수 찾고 있었다 – Hnig
예 내가 너무 너무 생각 같은 일 – ant45de