Я реализую achartengine в ViewPager. Представление, содержащее диаграмму, имеет счетчик с 7 вариантами, где вы можете выбрать, какие данные вы хотите просмотреть. 6 вариантов возвращают PieChartView, а последний возвращает TimeChartView.
Диаграммы PieChartView обновляются и перерисовываются, как и ожидалось, но при выборе параметра TimeChartView ничего не происходит. Представление остается с ранее выбранным PieChartView и не выдает ошибку. Я успешно реализовал TimeChartView в другом месте приложения, и сравнение кода и данных, подаваемых на диаграмму, не выявило никаких флагов, поэтому я могу только предположить, что мой метод переключения типов графиков неверен.
Фрагмент кода ниже — это часть, которая связана с переключением представлений; Любой совет будет принят во внимание.
try{
//if mChartView is already created (has data)
//we need to invalidate it because it will only accept
//data less than or equal to the length of data it currently has
if(mChartView != null){
mChartView.invalidate();
}
if(graphType >= 6){
mChartView = ChartFactory.getTimeChartView(ctx, mDataset, genericXYRenderer, "MM/dd");
genericXYRenderer.setClickEnabled(false);
}else{
mChartView = ChartFactory.getPieChartView(ctx, genericSeries, genericRenderer);
genericRenderer.setClickEnabled(false);
genericRenderer.setSelectableBuffer(10);
}
layout.addView(mChartView, new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
mChartView.repaint();
} catch (Exception e) {
Log.e("[appname]", "Error trying to set ChartView", e);
m_Logger = new Logger();
m_Logger.error(e);
}
Большое спасибо, Дэйв