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



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数据捆 来传递,对于传递对象使用 两种对象的传递方式,关键就是需要对象实现相应的接口

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

 
 


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灯塔@kuaidao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值