在Android中从子活动中取回对象

在Android中从子活动中取回对象,android,Android,我有一个主活动,它通过意图启动子活动 我知道我们在ActivityResult上调用的方法getStringExtra(string),或getBooleanExtra(string)等;但是它们都返回一个原始数据。。。 如何从子活动的用户定义类中获取对象 谢谢,这是我的第一个问题!:)有点太晚了…你要找的 一个更简单但非最优的解决方案是 片段: public class MyParcelable implements Parcelable { private int mData;

我有一个主活动,它通过
意图
启动子
活动

我知道我们在ActivityResult上调用的方法
getStringExtra(string)
,或
getBooleanExtra(string)
等;但是它们都
返回
一个原始数据。。。
如何从子活动的用户定义类中获取对象

谢谢,这是我的第一个问题!:)有点太晚了…

你要找的

一个更简单但非最优的解决方案是

片段:

 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();
     }
 }
一个有效的例子

编辑:以下是如何使用片段

// Receiver class
Bundle data = getIntent().getExtras();

public class MyFragment extends Fragment {

    public static MyFragment newInstance(int index, Bundle data) {
        MyFragment f = new MyFragment();
        data.putInt("index", index);
        f.setArguments(data);
        return f;
    }

}

// In the fragment
Bundle data = getArguments();

您可以创建
Parcelable
自定义对象

像这样

public class Student implements Parcelable{
加上这样的意图

intent.putExtra("student", obj);
然后像这样得到那个物体

Bundle data = getIntent().getExtras();
Student student = (Student) data.getParcelable("student");

有一个网站,使Parselabel类从您的自定义类…swweeeet!

为了让我这样的noob明白,如果在片段中使用,应该是getActivity().getIntent().getExtras()@Ashl7可以,但不是一个好的设计实践。我更新了我的答案。
Bundle data = getIntent().getExtras();
Student student = (Student) data.getParcelable("student");