2012-10-22 36 views
3

最初尝试使用Google的AChartEngine绘制图表。不过,我想用后退按钮在不同的布局上绘制它。到目前为止,我没有发现代码有什么问题,但是当它需要的时候图表并没有显示出来。所以我有一个主要文件开始意图启动ShowGraph活动。此代码正在工作,因为它将我带到适当的屏幕。所以问题是图形没有显示在线性布局中,只有按钮才会显示。任何建议或错误,你可以找到?在单独的活动中显示绘制的AChartEngine图形

buttonConfirm.setOnClickListener(new View.OnClickListener() { 

       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        if (radioButtonGraph.isChecked()){ 
         Intent sg = new Intent (MainActivity.this, ShowGraph.class); 
         startActivity(sg); 

        } 

在显示图形屏幕时,XML看起来像这样:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 


    <Button 
    android:id="@+id/buttonBackGraph" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:background="@drawable/coolbutton" 
    android:text="@string/doneAlarm" > 
    </Button> 


    <LinearLayout 
    android:id="@+id/graphLayout" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" /> 
</LinearLayout> 

使用此布局有一个按钮的活性,并以图形函数的调用:

public class ShowGraph extends Activity{ 
Button buttonDone1; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.avgraph); 
    buttonDone1 = (Button)findViewById(R.id.buttonBackGraph); 
    buttonDone1.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent dne = new Intent(ShowGraph.this, MainActivity.class); 
      startActivity(dne); 
     } 
    }); 
} 

public void lineGraphHandler(View view){ 
    GraphActivity line = new GraphActivity(); 
    GraphicalView gView = line.getView(getApplicationContext()); 
    LinearLayout l1 = (LinearLayout)findViewById(R.id.graphLayout); 
    l1.addView(gView); 
} 

} 

最后,绘制图形的图表函数应该在上面的线性布局中绘制:

public class GraphActivity extends Activity { 

public GraphicalView getView(Context context){ 
    //hardcoded plotting data for now 
    int[]x = {1,2,3,4,5,6,7,8,9,10}; 
    int[]y ={130, 150, 358, 200, 90,60, 110, 120, 130, 150}; 

    TimeSeries series = new TimeSeries ("BGL Data"); 
    for (int i=0; i<x.length;i++){ 
     series.add(x[i], y[i]); 
    } 

    XYMultipleSeriesDataset dataset = new XYMultipleSeriesDataset(); 
    dataset.addSeries(series); 

    XYMultipleSeriesRenderer mrenderer = new XYMultipleSeriesRenderer(); 
    XYSeriesRenderer renderer = new XYSeriesRenderer(); 
    mrenderer.addSeriesRenderer(renderer); 
    mrenderer.setChartTitle("Blood Glucose Levels Tracking"); 
    mrenderer.setXTitle("Test Date and Time Reference Number"); //number corresponding to date and time of test 
    mrenderer.setXAxisMin(0); 
    mrenderer.setXAxisMax(10); 
    mrenderer.setYTitle("Blood Glucose Level/ mg/dl"); 

    return ChartFactory.getLineChartView(context, dataset, mrenderer); 

} 
} 
+1

这不是“Google的”AChartEngine。 –

回答

0

lineGraphHandler方法不会在任何地方调用。

+0

谢谢你的诀窍。我在布局中添加了另一个按钮,并将onClick设置为引用lineGraphHandler方法。 对不起,我打算说Android的aChartEngine – user1742524