现在的位置: 首页 > 综合 > 正文

android之Intent复杂数据的传递(ArrayList类型的数据)
2018年06月09日 ⁄ 综合 ⁄ 共 2630字 ⁄ 字号 评论关闭

三、传递ArrayList<Object>

传递ArrayList<Object>的方法

1)首先在新建的项目工程里建立一个实现了Serializable接口的PersonInfo实体类,然后在其中添加若干属性并生成相应的setget方法,具体代码如下:

package zjh.android.bean;
 
import java.io.Serializable;
 
@SuppressWarnings("serial")
public class PersonInfo implements Serializable {
private String name;
private String address;
private int age;
public PersonInfo(){};
public PersonInfo(String name,String address,int age){
this.name = name;
this.address = address;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}

2)新建一个用来发送ArrayList<Object>类型数据的SendActivity类,具体实现如下:

package zjh.android.lx;
 
import java.io.Serializable;
import java.util.ArrayList;
 
import zjh.android.bean.PersonInfo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
 
public class SendActivity extends Activity {
private Button send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.activity_send);
this.send = (Button)super.findViewById(R.id.send);
this.send.setOnClickListener(new OnClickListenerImpl());
}
 
private final class OnClickListenerImpl implements OnClickListener{
 
@Override
public void onClick(View v) {
ArrayList<PersonInfo> list = new ArrayList<PersonInfo>();
PersonInfo personInfo = new PersonInfo("张三","广州",22);
list.add(personInfo);
Intent intent = new Intent(SendActivity.this,ReceiveActivity.class);
Bundle bundle = new Bundle();
bundle.putSerializable("personInfo", (Serializable)list);
intent.putExtras(bundle);
SendActivity.this.startActivity(intent);
}
}
}

3)建立一个用来接收ArrayList<Object>类型数据的ReceiveActivity类,代码如下:

package zjh.android.lx;
 
import java.util.ArrayList;
 
import zjh.android.bean.PersonInfo;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
 
public class ReceiveActivity extends Activity {
private TextView msg;
 
@SuppressWarnings("unchecked")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.receive);
this.msg = (TextView) super.findViewById(R.id.msg);
Intent intent = super.getIntent();
ArrayList<PersonInfo> list = (ArrayList<PersonInfo>) intent
.getSerializableExtra("personInfo");
this.msg.setText("name=" + list.get(0).getName() + "\n" + "address="
+ list.get(0).getAddress() + "\n" + "age="
+ list.get(0).getAge());
}
 
}

  4)在AndroidManifest.xml文件中添加如下activity

<activity android:name="zjh.android.lx.ReceiveActivity"/>

此时,通过Intent传递ArrayList<Object>类型的数据就实现了。