在安卓中使用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());
}
通过以上几个步骤就能进行对象数组的传递了,即简单又方便。