我在尝试从一个活动(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的方法。这是错误传播的地方
答案 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);
}