Android Intent putExtra(String, Serializable)

标签 android android-activity android-intent

如果这个问题已经得到回答,我很抱歉,我搜索了很多,但我找不到任何问题。

我正在编写一个从 Internet 数据库获取数据的 Android 应用程序。我的第一个 Activity 从数据库中检索数据,然后我尝试将对整个数据库的引用传递给另一个 Activity 。

它简要地看起来像这样:

//server is wrapper class for my database connection/ data retrieving
Server server = new Server(...connection data...);
server.connect();
server.filldata();

然后我尝试将其传递给另一个 Activity

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra("server", server); //server, and all implements Serializable
startActivity(intent);

在此之后我得到一个 java.lang.reflect.InvocationTargetException 没有解释,问题可能是什么。

如果您知道将对象(除了 int、string...)传递给另一个 Activity 的方法,请帮助我!

最佳答案

您的类 Server 应该实现接口(interface) Parcelable 以便其对象通过 bundle 传输。

参见下面的示例,可用here :

 public class MyParcelable implements Parcelable {
     private int mData;

     public int describeContents() {
         return 0;
     }

     public void writeToParcel(Parcel out, int flags) {
         out.writeInt(mData);
     }

     public static final Parcelable.Creator<MyParcelable> CREATOR
             = new Parcelable.Creator<MyParcelable>() {
         public MyParcelable createFromParcel(Parcel in) {
             return new MyParcelable(in);
         }

         public MyParcelable[] newArray(int size) {
             return new MyParcelable[size];
         }
     };

     private MyParcelable(Parcel in) {
         mData = in.readInt();
     }
 }

关于Android Intent putExtra(String, Serializable),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10094457/

相关文章:

java - 如何在android中逐字搜索

android - 获取 ListView 的大小

android - 显示 AlertDialog 时暂停 Activity

java - 在 Activity1 fragment 上使用从 Activity2 接口(interface)检索的数据时出现问题

android - 检测在应用程序内部启动的 Activity

java - 分享意向安卓

android 输入验证没有按预期工作

android - "Activity"类中成员变量的持久化

android - 如何测试 Google App Invites

android - 防止 Activity 在旋转屏幕时重新启动