3

最初に、Google のAChartEngineを使用してグラフをプロットしようとしました。ただし、戻るボタンで別のレイアウトにプロットしたいと思います。これまでのところ、コードに問題は見つかりませんが、必要なときにグラフが表示されません。したがって、ShowGraph アクティビティを起動するインテントを開始するメイン ファイルがあります。適切な画面に移動するため、このコードは機能しています。問題は、グラフが線形レイアウトに表示されず、ボタンだけが表示されることです。あなたが見つけることができる提案やエラーはありますか?

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); 

}
}
4

1 に答える 1

0

lineGraphHandlerメソッドはどこでも呼び出されません。

于 2012-10-22T20:03:35.540 に答える