安卓传递对象之Serializable

在安卓中使用inetent和bundle可以传递基本数据类型以及数组等常用数据,然而传递对象或对象数组时,这些就没办法了,需要借用Serializable和parcelable这两个序列化的接口。
1.首先见一个存放数据的类并实现Serializable接口:
public class data implements Serializable {

String name, password;

public String getName() {
    return name;
}

public void setName(String name) {
    this.name = name;
}

public String getPassword() {
    return password;
}

public void setPassword(String password) {
    this.password = password;
}

public data(String name, String password) {
    super();
    this.name = name;
    this.password = password;
}

2.实现以上接口后就可以在activity上进行对象的传递了
1.activity:public class MainActivity extends Activity {
private List list=new ArrayList();;
private TextView t;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

    data d=new data("123", "123");
    data d1=new data("456", "456");
    data d2=new data("789", "789");
    data d3=new data("000", "000");
    list.add(d);
    list.add(d1);
    list.add(d2);
    list.add(d3);
    Button b=(Button)findViewById(R.id.b);
    t=(TextView)findViewById(R.id.textView1);
    b.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            //t.setText(list.get(0).getName()+list.get(0).getPassword()+"      "+list.get(1).getName()+list.get(1).getPassword());
            // TODO Auto-generated method stub
            Intent intent=new Intent(MainActivity.this,p.class);
            Bundle b=new Bundle();
            //b.putParcelableArrayList("list", (ArrayList<data>)list);
            //b.putParcelableArray("name", list);
            //b.putParcelable("cc", (Parcelable) list);
            b.putSerializable("list", (Serializable) list);
            intent.putExtras(b);
            startActivity(intent);
        }
    });

}

2.activity2:public class p extends Activity{
private List list=new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.da);
TextView t=(TextView)findViewById(R.id.t);
Bundle b=getIntent().getExtras();
// Bundle b=getIntent().getExtras();
list=(List) b.getSerializable(“list”);
//list=b.getParcelableArrayList(“list”);
//list=b.getParcelable(“cc”);
t.setText(list.get(0).getName()+list.get(0).getPassword()+” “+list.get(1).getName()+list.get(1).getPassword());

}
通过以上几个步骤就能进行对象数组的传递了,即简单又方便。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值