Activity的两种传递方式

如果Activity之间传值的时候,想要传递对象,有一下两种传递方式

putSerializable(String ley,Serializable value);

putParcelable(String key,Parcelable value);

一种是

Bunble.putSerializable(String ley,Object);

Bunble.putParcelable(String key,Objec);

当然这些Object是有一定条件的,前面必须实现Serializble接口,后者实现Parcelable接口,

如果Activity之间传值的时候,想要传递对象,有一下两种传递方式

putSerializable(String ley,Serializable value);

putParcelable(String key,Parcelable value);

下面是Serializable的传递方式

创建一个实体类

public class DeptBean implements Serializable {
    private String deptName;
    private String deptAge;

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDeptAge() {
        return deptAge;
    }

    public void setDeptAge(String deptAge) {
        this.deptAge = deptAge;
    }
}

创建一个要传值的Activity

	    @Override
	    Protected void onCreate(Bundle saveInstanceState){
				super.onCreate(saveInstanceState);
				setContentView(R.layout.activity_main);
				TextView tv=(TextView) findViewById(R.id.tv);
				tv.setOnClickListener(new View.OnClickListener() {
			            @Override
			            public void onClick(View view) {
                		DeptBean deptBean=new DeptBean();
                		deptBean.setDeptName("小明");
                		deptBean.setDeptAge("20");
    	  Intent intent = new Intent(MainActivity.this,MainActivity2.class);
                		Bundle bundle=new Bundle();
                		bundle.putSerializable("SERIALIZBLE",deptBean);
                		intent.putExtras(bundle);
                		startActivity(intent);
            }
        });
		}

这个是获取值的activity

    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main2);
            TextView tv_Age=(TextView)findViewById(R.id.tv_age);
            TextView tv_Name=(TextView)findViewById(R.id.tv_name);
DeptBean deptBean=(DeptBean) getIntent().getSerizlizableExtra("SERIALIZBLE");
            String age=deptBean.getDeptAge();
            String name=deptBean.getDeptName();
      
            tv_Age.setText(age);
            tv_Name.setText(name);
    }

Parcelable的实现方法

public class DeptBean implements Parcelable {
    private String deptName;
    private String deptAge;

    public String getDeptName() {
        return deptName;
    }

    public void setDeptName(String deptName) {
        this.deptName = deptName;
    }

    public String getDeptAge() {
        return deptAge;
    }

    public void setDeptAge(String deptAge) {
        this.deptAge = deptAge;
    }

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

    @Override
    public void writeToParcel(Parcel parcel, int i) {
        parcel.writeString(deptName);
        parcel.writeString(deptAge);
    }
    public static final Parcelable.Creator<DeptBean> CREATOR=new Creator<DeptBean>() {
        @Override
        public DeptBean createFromParcel(Parcel parcel) {
            DeptBean deptBean=new DeptBean();
            deptBean.deptName=parcel.readString();
            deptBean.deptAge=parcel.readString();
            return deptBean;
        }
        @Override
        public DeptBean[] newArray(int i) {
            return new DeptBean[i];
        }
    };
}

Activity的实现方式同理

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    TextView tv= (TextView) findViewById(R.id.tv);
    tv.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            DeptBean deptBean=new DeptBean();
            deptBean.setDeptName("小明");
            deptBean.setDeptAge("20");
            Intent  intent=new Intent(MainActivity.this,MainActivity2.class);
            Bundle bundle=new Bundle();
            bundle.putParcelable("PARCELABLE",deptBean);
            intent.putExtras(bundle);
            startActivity(intent);
        }
    });
}

接收界面

protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);
    tv_age=(TextView) findViewById(R.id.tv_age);
    tv_name=(TextView) findViewById(R.id.tv_name);
    DeptBean deptBean=(DeptBean) getIntent().getParcelableExtra("PARCELABLE");
    String age=deptBean.getDeptAge();
    String name=deptBean.getDeptName();
    tv_age.setText(age);
    tv_name.setText(name);
}

备注:本人菜鸟一个,纯自己手动敲出来,希望和大家分享一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值