Android中Intent传递对象的两种方法(Serializable,Parcelable)

来源:互联网 发布:iphone越狱后清除数据 编辑:程序博客网 时间:2024/06/05 10:45


1.主页包含两个线性布局。 fragment1 he fragment2 可以通过主实现接口,从中定义接口。实现数据的传递。
2.fragment 中跳转到acitiviy --可以直接跳转

creat-onceratview---onactivitycreat


 
方式一

(在fragment中传递)通过bundle传递 序列化对象--activity

Studnet nTestObject = new Studnet("杨卫超", "男"); --通过两种序列化之间传值,必须实现相应的接口
                Bundle nBundle = new Bundle();
                nBundle.putSerializable("seri", nTestObject);
                Intent intent=new Intent(getActivity(),detailActivity.class);
                intent.putExtra("nihao",nBundle);
                getActivity().startActivity(intent);

  在activity中进行接收

   Intent intent=getIntent();
          Bundle bundle= intent.getBundleExtra("nihao");
          Studnet studnet= (Studnet) bundle.getSerializable("seri");
  然后进行打印出去

 
方式二

   使用parcel(包裹)---parcelable容器 来传递 parcel对象

//发送端
Studnet nTestObject = new Studnet("杨卫超", "男");
                Intent intent=new Intent(getActivity(),detailActivity.class);
                intent.putExtra("parcelable",nTestObject);
                getActivity().startActivity(intent);

//接收端
        Intent intent=getIntent();
        Studnet studnet=intent.getParcelableExtra("parcelable");

对象需要实现  implements Parcelable

@Override
    public int describeContents() {
        return 0;
    }

    @Override
    public void writeToParcel(Parcel parcel, int i) {
         parcel.writeString(name);
         parcel.writeString(sex);


    }

    public static final Parcelable.Creator<Studnet> CREATOR=new Parcelable.Creator<Studnet>() {


        @Override
        public Studnet createFromParcel(Parcel parcel) {

            Studnet studnet=new Studnet();
            studnet.name=parcel.readString();
            studnet.sex=parcel.readString();
            return studnet;
        }

        @Override
        public Studnet[] newArray(int i) {
            return new Studnet[0];
        }
    };


https://github.com/inferjay/AndroidDevTools/ 开发包下载

http://blog.csdn.net/knxw0001/article/details/9283867 传递parclebal

http://blog.csdn.net/xyz_lmn/article/details/5908355

 http://blog.csdn.net/xyz_lmn/article/details/5908355


  总结“写了一上午,总算知道的七七八八,fragment----fragment之间传值  fragment 和activity 之间传值。 activity之间传

 使用bundle数据捆 来传递,对于传递对象使用 两种对象的传递方式,关键就是需要对象实现相应的接口

传递不同数据很好理解,再次就不再赘述了

 
 


0 0