在Android中,使用intent的putExtra()方法是没有办法传递实例的,但是我们很多情况下都需要传递实例过去,这样子会更加方便一点。接下里,我就说一下怎么使用putExtra()方法来进行实例的传递。
首先创建一个类:
package com.zkteco.petsystem;
import java.io.Serializable;
/**
* Created by Administrator on 2017/9/5 0005.
*/
public class ItemInfo implements Serializable{
private String name;
private int attack;
private int life;
private int speed;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAttack() {
return attack;
}
public void setAttack(int attack) {
this.attack = attack;
}
public int getLife() {
return life;
}
public void setLife(int life) {
this.life = life;
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public ItemInfo(String name, int attack, int life, int speed) {
this.name = name;
this.attack = attack;
this.life = life;
this.speed = speed;
}
public ItemInfo(){
}
}
一定要注意,
这个类要实现Serializable接口
,这是很关键的一步。
然后在传递的时候,使用putExtra()方法进行传递,详情见以下代码
Intent intent = new Intent();
intent.putExtra("itemInfo",itemInfo);
setResult(1,intent);
finish();
finish()方法用于结束销毁掉当前activity。
在接受数据的页面,使用getSerializableExtra()方法获取传递的值,要注意类型的强制转换。
ItemInfo itemInfo= (ItemInfo) data.getSerializableExtra("itemInfo");