我有一个活动,启动时需要访问两个不同的ArrayLists.两个列表都是我自己创建的不同对象.
基本上我需要一种方法将这些对象从Intent传递给活动.我可以使用addExtras()但这需要一个Parceable兼容类.我可以让我的类通过序列化,但据我所知,这会减慢程序的速度.
我有什么选择?
我可以通过枚举吗?
旁白:有没有办法从Intent将参数传递给Activity Constructor?
我一直无法解决为什么会出现这种错误,并且只能在运行4.4.2的三星Tab3设备上解决?它发生在我的MainActivity启动另一个Activity时,并在intent中传递一个Parcelable类,如下所示:
private void debugTest(TestParcel cfgOptions){
TestParcel cfgOptions = new TestParcel();
cfgOptions.setValue(15); //just to verify
Intent intent = new Intent(MainActivity.this, TestActivity.class);
intent.putExtra("cfgOptions", cfgOptions);
startActivityForResult(intent, DBG_TEST);
}
Run Code Online (Sandbox Code Playgroud)
TestActivity获取可分配的数据,如下所示:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test_activity);
TestParcel cfgOptions = getIntent().getExtras().getParcelable("cfgOptions");
}
Run Code Online (Sandbox Code Playgroud)
TestParcel类:
import android.os.Parcel;
import android.os.Parcelable;
public class TestParcel implements Parcelable {
private long l_ucs_value = 0;
private String s_rx_number = "";
//constructor
public TestParcel() {
l_ucs_value = 0;
s_rx_number = "";
}
public void RxNumber(String s) {
s_rx_number = s;
}
public …Run Code Online (Sandbox Code Playgroud) android unmarshalling parcel android-intent classnotfoundexception
这个项目在更新到ADT22之前创造了奇迹.我已经失去了一天,因为我不知道我必须下载构建工具,而且我担心因为这个原因我将失去另一个.
当我尝试构建两天前工作的相同代码时,我遇到了这个异常:
com.cidaut.blueparking fatal error : Unable to instantiate activity \
ComponentInfo{com.cidaut.blueparking/com.cidaut.blueparking.SplashScreen_}: \
java.lang.ClassNotFoundException: \
Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \
/data/app/com.cidaut.blueparking-1.apk
java.lang.RuntimeException: Unable to instantiate activity \
ComponentInfo{com.cidaut.blueparking/com.cidaut.blueparking.SplashScreen_}: \
java.lang.ClassNotFoundException: \
Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \
/data/app/com.cidaut.blueparking-1.apk
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: \
Didn't find class "com.cidaut.blueparking.SplashScreen_" on path: \ …Run Code Online (Sandbox Code Playgroud) android classnotfoundexception eclipse-adt android-annotations
我有一些来自Android市场的崩溃报告日志,类似于:
Exception class: java.lang.ClassNotFoundException
Source method: PathClassLoader.findClass()
java.lang.RuntimeException: Unable to start activity ComponentInfo{my.app.package/my.app.package.MyActivity}: java.lang.RuntimeException: Parcelable encounteredClassNotFoundException reading a Serializable object (name = my.app.package.a.ae)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2833)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2854)
at android.app.ActivityThread.access$2300(ActivityThread.java:136)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:5068)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.RuntimeException: Parcelable encounteredClassNotFoundException reading a Serializable object (name = my.app.package.a.ae)
at android.os.Parcel.readSerializable(Parcel.java:1951)
at android.os.Parcel.readValue(Parcel.java:1822)
at android.os.Parcel.readMapInternal(Parcel.java:2008)
at android.os.Bundle.unparcel(Bundle.java:208)
at android.os.Bundle.getBundle(Bundle.java:1078)
at android.app.Activity.onRestoreInstanceState(Activity.java:861)
at android.app.Activity.performRestoreInstanceState(Activity.java:835)
at android.app.Instrumentation.callActivityOnRestoreInstanceState(Instrumentation.java:1135)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2811)
... …Run Code Online (Sandbox Code Playgroud) 我正在尝试发送Serializable对象从一个应用程序发送到另一个应用程序。
我的 Android 应用程序有一个可序列化的类
\n\npublic class MyClass implements Serializable\nRun Code Online (Sandbox Code Playgroud)\n\n然后我将其中的一个实例用于意图
\n\nMyClass myObject = new MyClass();\nintent.putExtra("payItem", myObject);\nintent.setAction("com.mypackage.some.action");\nRun Code Online (Sandbox Code Playgroud)\n\n当我调用startActiviy时
\n\nstartActivity(intent);\nRun Code Online (Sandbox Code Playgroud)\n\n我的应用程序崩溃了
\n\n5-16 11:09:24.738 30673-30673/? E/AndroidRuntime: FATAL EXCEPTION: main\nProcess: system:ui, PID: 30673\njava.lang.RuntimeException: Unable to start activity ComponentInfo{android/com.android.internal.app.ResolverActivity}: java.lang.RuntimeException: Parcelable encountered ClassNotFoundException reading a Serializable object (name = com.mypackage.MyClass)\n at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2955)\n at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030)\n at android.app.ActivityThread.-wrap11(Unknown Source:0)\n at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696)\n at android.os.Handler.dispatchMessage(Handler.java:105)\n at android.os.Looper.loop(Looper.java:164)\n at android.app.ActivityThread.main(ActivityThread.java:6938)\n at java.lang.reflect.Method.invoke(Native Method)\n at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)\n at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)\n Caused by: java.lang.RuntimeException: …Run Code Online (Sandbox Code Playgroud)