Вот мой ответ Json с сервера:
{
"OpdIpdComparison": [
{
"Year": 2019,
"Month": 1,
"MonthString": "January",
"IPD": 35,
"OPD": 3,
"Percent": "12.0"
},
{
"Year": 2019,
"Month": 2,
"MonthString": "February",
"IPD": 40,
"OPD": 0,
"Percent": "Infinity"
},
{
"Year": 2019,
"Month": 3,
"MonthString": "March",
"IPD": 53,
"OPD": 0,
"Percent": "Infinity"
}
]
}
Мой основной класс для извлечения моих данных Jason:
открытый классOpdIpdAnalysis расширяет AppCompatActivity {
ApiService service;
TokenManager tokenManager;
Call<ModelResponse> call;
private ListView mListView;
//GraphView
private PieChart mPieChart;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_opd_ipd_analysis);
mListView = findViewById(R.id.mListView);
//GraphView casting
mPieChart = (PieChart)findViewById(R.id.pieChart);
//code for retrofit call
call = service.getAllOpdIpdData();
call.enqueue(new Callback<ModelResponse>() {
@Override
public void onResponse(Call<ModelResponse> call, Response<ModelResponse> response) {
myProgressBar.setVisibility(View.GONE);
if (response.isSuccessful() && response.body() != null) {
updatUI(response.body().getOpdIpdComparison());
List<PieEntry> pieEntries = new ArrayList<>();
for (OpdIpdModel opdIpdModel : response.body().getOpdIpdComparison()){
pieEntries.add(new PieEntry(opdIpdModel.getiPD(), opdIpdModel.getMonthString(), opdIpdModel.getoPD()));
}
mPieChart.setDrawHoleEnabled(false);
mPieChart.setVisibility(View.VISIBLE);
mPieChart.animateXY(4000,3000);
PieDataSet pieDataSet = new PieDataSet(pieEntries, "Growth per month");
pieDataSet.setSliceSpace(3f);
pieDataSet.setSelectionShift(5f);
pieDataSet.setColors(ColorTemplate.JOYFUL_COLORS);
PieData pieData = new PieData(pieDataSet);
pieData.setValueTextSize(10f);
pieData.setValueTextColor(Color.YELLOW);
mPieChart.setData(pieData);
Description description = new Description();
description.setText("Growth rate per month");
description.setTextSize(12);
description.setTextColor(Color.BLACK);
mPieChart.setDescription(description);
mPieChart.invalidate();
}
}
@Override
public void onFailure(Call<ModelResponse> call, Throwable t) {
myProgressBar.setVisibility(View.GONE);
Snackbar snackbar = Snackbar.make(findViewById(android.R.id.content), "Network Status: " + t.getMessage(), Snackbar.LENGTH_LONG);
View snackbarView = snackbar.getView();
snackbarView.setBackgroundColor(Color.parseColor("#e64a19"));
TextView tv = (TextView) snackbarView.findViewById(R.id.snackbar_text);
tv.setTextColor(Color.WHITE);
snackbar.show();
}
});
}
Теперь моя круговая диаграмма показывает только значение ipd, а не значение opd
Есть ли способпоказать несколько данных в pieChart?
Мой вопрос: как я могу получить оба значения и показать их внутри pieChart?