切换活动时出错

时间:2013-08-01 08:51:08

标签: android

我在尝试从一个活动(com.intelligent.stocktrader.MyAccount)切换到另一个活动(com.intelligent.stocktrader.SharePerformanceDetails时出错。我做错了什么? 我的代码没有错误。
以下是log cat内容:

  

E / AndroidRuntime(787):致命异常:主E / AndroidRuntime(787):   java.lang.RuntimeException:无法启动活动   ComponentInfo {com.intelligent.stocktrader / com.intelligent.stocktrader.SharePerformanceDetails}:   java.lang.RuntimeException:Parcelable遇到IOException写入   可序列化对象(name = org.achartengine.chart.LineChart)   E / AndroidRuntime(787):at   android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1955)   E / AndroidRuntime(787):at   android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)

MyAccount活动onCreate切换活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_performance);
    //Bundle extras = getIntent().getExtras();
    //stock_name = extras.getString("stock");
    //new PerformanceDetails().execute();   
    LineGraph line=new LineGraph();
    Intent intent=line.getIntent(getApplicationContext());
    startActivity(intent);
}

LineGraph类

public Intent getIntent(Context context){

    -----------
            -----------
    return intent;
}

LineGraph类有一个返回intent的方法。这是错误传播的地方

3 个答案:

答案 0 :(得分:1)

那是因为你的Intent包含无法序列化的LineChart。你会从java.io.Serializable发出LineChart实现。

答案 1 :(得分:0)

在onclick()上使用以下代码它将起作用 -

Intent i = new Intent(getApplicationContext(), SecondScreen.class);
StartActivity(i);

要运行我们的应用程序,您应该在AndroidManifest.xml文件中输入新活动。在标签之间添加新活动:

<activity android:name=".NewActivityClassName"></activity>

答案 2 :(得分:0)

试试这个:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_performance);
//Bundle extras = getIntent().getExtras();
//stock_name = extras.getString("stock");
//new PerformanceDetails().execute();   
LineGraph line=new LineGraph();
Intent intent=new Intent(getApplicationContext(),SharePerformanceDetails.class); // EDITED
startActivity(intent);

}