Android MPChart - как обновить StackLabel?
Я использую MPChart и имею несколько диаграмм для разных вкладок, и поэтому при переключении вкладок необходимо обновить обновленную диаграмму с накоплением и ее метку.
Код:
BarDataSet set1;
if (chart_stacked.getData() != null && chart_stacked.getData().getDataSetCount() > 0)
{
set1 = (BarDataSet) chart_stacked.getData().getDataSetByIndex(0);
set1.setValues(yVals1);
chart_stacked.getData().notifyDataChanged();
chart_stacked.notifyDataSetChanged();
}
else
{
// set1 = new BarDataSet(yVals1, "Toilet Statistics");
set1 = new BarDataSet(yVals1, "");
set1.setDrawIcons(false);
set1.setColors(getColors());
if (chart_type.equals("feed"))
{
set1.setStackLabels(new String[]{"A", "B"});
}
if (chart_type.equals("pump"))
{
set1.setStackLabels(new String[]{"C", "D"});
}
ArrayList<IBarDataSet> dataSets = new ArrayList<IBarDataSet>();
dataSets.add(set1);
BarData data = new BarData(dataSets);
data.setValueTextColor(Color.BLACK);
chart_stacked.setData(data);
}
chart_stacked.invalidate();
Utilities.custom_toast(Stat.this, "chart type = " + chart_type, "gone", "short");
Вопрос:
Тост в конце показывает, что при нажатии на разные вкладки переменная chart type
успешно обновлен. бары обновлены. Тем не менее, ярлык стека по-прежнему показывает A и B вместо C и D при нажатии на страницу C&D.
Как можно обновить этикетку стека? Спасибо.
1 ответ
Заменить это:
chart_stacked.invalidate();
Utilities.custom_toast(Stat.this, "chart type = " + chart_type, "gone",
"short");
с:
chart_stacked.notifyDataSetChanged();
chart_stacked.invalidate();
Utilities.custom_toast(Stat.this, "chart type = " + chart_type, "gone", "short");