ViewPager 内に achartengine を実装しています。グラフを保持するビューには、表示するデータを選択できる 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);
}
どうもありがとう、デイブ