Я пишу свое первое графическое приложение и следил за онлайн-учебником. Я использую AChartEngine, и у меня есть основное действие, на котором есть кнопка. Когда кнопка нажата, предполагается, что графические данные передаются ей, однако, когда кнопка нажата, приложение вылетает, и я получаю uncaught thread exception
вместе с Could not execute main activity
. Мое приложение дает сбой, потому что мне нужно полностью отдельное действие для отображения графика? Я думал, что могу просто сбросить главный экран, чтобы показать график после нажатия кнопки.
05-07 18:44:10.720: W/dalvikvm(9057): threadid=1: thread exiting with uncaught exception (group=0x417bb898)
05-07 18:44:10.730: E/AndroidRuntime(9057): FATAL EXCEPTION: main
05-07 18:44:10.730: E/AndroidRuntime(9057): java.lang.IllegalStateException: Could not execute method of the activity
05-07 18:44:10.730: E/AndroidRuntime(9057): at android.view.View$1.onClick(View.java:3852)
05-07 18:44:10.730: E/AndroidRuntime(9057): at android.view.View.performClick(View.java:4489)
Вот моя основная деятельность
package com.OhYea.graphthis;
import android.support.v7.app.ActionBarActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void LineGraphHandler (View view)
{
LineGraph line = new LineGraph();
Log.i("newgraph", "Line Graph");
Intent lineIntent = line.getIntent(this);
Log.i("get intent", "get intent");
startActivity(lineIntent);
Log.i("start activity", "activity started");
}
}
Вот моя активность, которая передает данные в основную активность для отображения.
package com.OhYea.graphthis;
import org.achartengine.ChartFactory;
import org.achartengine.model.TimeSeries;
import org.achartengine.model.XYMultipleSeriesDataset;
import org.achartengine.renderer.XYMultipleSeriesRenderer;
import org.achartengine.renderer.XYSeriesRenderer;
import android.content.Context;
import android.content.Intent;
import android.util.Log;
public class LineGraph {
public Intent getIntent(Context context)
{
int[] x ={1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
int[] y ={30,34,45,57,77,89,100,111,123,145};
TimeSeries series = new TimeSeries ("Line1");
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);
Log.i("passing graph data", "Pass data to graph");
Intent intent = ChartFactory.getLineChartIntent(context, dataset, mRenderer, "Title");
return intent;
}
}