饼图正在使用 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 从而更新视图