三、传递ArrayList<Object>
传递ArrayList<Object>的方法
1)首先在新建的项目工程里建立一个实现了Serializable接口的PersonInfo实体类,然后在其中添加若干属性并生成相应的set、get方法,具体代码如下:
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>类型的数据就实现了。