饼图正在使用 activity 恢复时已经创建的切片绘制切片。如何防止或解决此问题?
Pie Graph is drawing slices with the slices that have been already created when the activity is resumed. How do I prevent or fix this issue?
我正在使用 HoloGraphLibrary 并使用适配器中的数据生成切片。首次创建 activity 时,该图完美运行。恢复 activity 时会出现问题。我 post 编辑了两张图片,我相信它们比我能解释的更能说明问题。第一张图片是图表首次创建时的图片,第二张图片是 activity 恢复时的图片。我试图使图表无效但没有成功。当 activity 恢复时,我将如何重新创建图表,以便它不会使用已经存在的图表绘制图表?如果您需要更多信息,我可以 post 更多代码。
图的实现
@Override
protected void onResume() {
super.onResume();
adapters();
pieGraph();
}
PieGraph pg;
public void pieGraph() {
pg = (PieGraph) findViewById(R.id.graph);
for (int x = 0; x < mSecondAdapter.getCount(); x++) {
LogSecond lti = mSecondAdapter.getItem(x);
String color = lti.getColorCode();
String sdf = dff.format(lti.getTotal());
PieSlice slice = new PieSlice();
slice.setColor(Color.parseColor(color));
slice.setValue(Integer.valueOf(sdf));
pg.addSlice(slice);
pg.forceLayout();
pg.invalidate();
}
}
OnCreare
恢复
您可以调用 removeslices。
pg = (PieGraph) findViewById(R.id.graph);
pg.removeslices();
for (int x = 0; x < mSecondAdapter.getCount(); x++) {
LogSecond lti = mSecondAdapter.getItem(x);
String color = lti.getColorCode();
String sdf = dff.format(lti.getTotal());
PieSlice slice = new PieSlice();
slice.setColor(Color.parseColor(color));
slice.setValue(Integer.valueOf(sdf));
pg.addSlice(slice);
pg.forceLayout();
pg.invalidate();
}
删除切片不是正确的原因,
在您的适配器上调用 notifyDataSetChanged 从而更新视图
我正在使用 HoloGraphLibrary 并使用适配器中的数据生成切片。首次创建 activity 时,该图完美运行。恢复 activity 时会出现问题。我 post 编辑了两张图片,我相信它们比我能解释的更能说明问题。第一张图片是图表首次创建时的图片,第二张图片是 activity 恢复时的图片。我试图使图表无效但没有成功。当 activity 恢复时,我将如何重新创建图表,以便它不会使用已经存在的图表绘制图表?如果您需要更多信息,我可以 post 更多代码。
图的实现
@Override
protected void onResume() {
super.onResume();
adapters();
pieGraph();
}
PieGraph pg;
public void pieGraph() {
pg = (PieGraph) findViewById(R.id.graph);
for (int x = 0; x < mSecondAdapter.getCount(); x++) {
LogSecond lti = mSecondAdapter.getItem(x);
String color = lti.getColorCode();
String sdf = dff.format(lti.getTotal());
PieSlice slice = new PieSlice();
slice.setColor(Color.parseColor(color));
slice.setValue(Integer.valueOf(sdf));
pg.addSlice(slice);
pg.forceLayout();
pg.invalidate();
}
}
OnCreare
您可以调用 removeslices。
pg = (PieGraph) findViewById(R.id.graph);
pg.removeslices();
for (int x = 0; x < mSecondAdapter.getCount(); x++) {
LogSecond lti = mSecondAdapter.getItem(x);
String color = lti.getColorCode();
String sdf = dff.format(lti.getTotal());
PieSlice slice = new PieSlice();
slice.setColor(Color.parseColor(color));
slice.setValue(Integer.valueOf(sdf));
pg.addSlice(slice);
pg.forceLayout();
pg.invalidate();
}
删除切片不是正确的原因,
在您的适配器上调用 notifyDataSetChanged 从而更新视图