2011-09-22 111 views
1

我一直在尝试几个小时才能得到像显示基于我手动提供的2个点的折线图这样简单的事情,而我所得到的只是一个崩溃。我试图了解基于演示代码的一切工作原理,但它太复杂了。我甚至不关心用onResume()等编写漂亮的代码,我只是想在第一次打开活动时显示某些内容。一旦我知道如何做到这一点,我就能够适应和学习我需要的东西。这是我想出了代码:非常基本的AChartEngine XY

public class StatsActivity extends Activity { 
private XYMultipleSeriesDataset StatsDataset = new XYMultipleSeriesDataset(); 
private XYMultipleSeriesRenderer StatsRenderer = new XYMultipleSeriesRenderer(); 
private XYSeries StatsCurrentSeries; 
private GraphicalView StatsChartView; 

protected void onCreate(Bundle savedInstanceState) { 
    setContentView(R.layout.stats); 
    LinearLayout layout = (LinearLayout) findViewById(R.id.Statschart); 
    StatsRenderer.setAxesColor(Color.YELLOW); 
    String seriesTitle = "Rank"; 
    XYSeries series = new XYSeries(seriesTitle); 
     series.add(5, 7); //1st series I want to add 
    StatsDataset.addSeries(series); 
     series.add(9, 1); //the 2nd one 
    StatsDataset.addSeries(series); 
    StatsCurrentSeries = series; 
    System.out.println(series); 
    XYSeriesRenderer renderer = new XYSeriesRenderer(); 
    renderer.setColor(Color.RED); 
    StatsRenderer.addSeriesRenderer(renderer); 
    StatsChartView = ChartFactory.getLineChartView(this, StatsDataset,StatsRenderer); 
    layout.addView(StatsChartView);  
} 
} 

我一直在阅读的文档,以确定每个功能做,但最终我还是不能得到任何显示。

谢谢!

回答

1

我苦苦挣扎的一件大事就是你需要为每个XYSeries提供一个渲染器。你有两个系列,但只有一个渲染器 - 我只是在输入数据时创建/添加渲染器。而且,Android大部分是通过引用的,所以你已经两次传递了相同的数据集(即你的第二次更新数据将被镜像到MultipleSeriesDataset中)。