有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (3) 个答案

  1. # 1 楼答案

    您可以通过以下方式之一执行此操作:

    • 使对象静止。(最简单但并不总是有效)
    • 序列化->;发送->;接收->;反序列化。如果类不可序列化,也可以使用类似JSON decoding and encoding的内容。(涉及到很多过头的问题,除非你有充分的理由,否则你不想使用这个)
    • 可包裹(效率最高、速度最快)

    这里有一个来自文档的示例:您可以使用parcelable包装您的对象,将其附加到意图,并在接收活动中“取消包装”

     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();
         }
     }
    
  2. # 2 楼答案

    解决方案之一:

    您可以创建一个singleton类来承载所需的信息

    例如:

    StorageManager.getInstance().saveSomething(Object obj);
    

    然后使用各自的getter方法检索回来

    确保您处理了同步问题;)

  3. # 3 楼答案

    您可以在另一个活动中声明一个静态变量,或者在应用程序类中声明某个全局变量,然后将其访问到任何活动,就像您希望从OldActivity解析NewType类型的某个对象到NewActivity类一样。按以下步骤进行:

    在NewActivity中声明静态NewType的对象。爪哇

    public static NewObject newObject=null;
    

    在调用NewActivity时执行以下操作

    NewActivity.newObject=item;
    Intent intent=new Intent(OldActivity.this, NewActivity.class);
    startActivity(intent);