两种方法:
1. 转自:http://blog.sina.com.cn/s/blog_667ad4d80100r2gk.html
很多人好像在郁闷这个问题,我这有个比较笨的方法:用bundle.putParcelableArrayList(list);
当然不能直接把list放进去了,你得经过加工。如下
Intent intent = new Intent();
Bundle bundle = new Bundle();
ArrayList list = new ArrayList();//这个arraylist是可以直接在bundle里传的,所以我们可以借用一下它的功能
list.add(list2);//这个list2才是你真正想要传过去的list。我们把它放在arraylis中,借助它传过去
bundle.putParcelableArrayList("list", list);
intent.putExtras(bundle);
intent.setClass(XXX1Activity.this,XXX2.class);
startActivity(intent);
取的时候:
ArrayList list = bundle.getParcelableArrayList("list");
list2= (List<Object>) list.get(0);//强转成你自己定义的list,这样list2就是你传过来的那个list了。
2.转自:http://apps.hi.baidu.com/share/detail/22568390
ntent可以传递Integer和String类型的ArrayList
如果不是Integer或者String,感觉只能用这个万能的串行化了
首先定义一个要传递的Class,要引用Serializable接口,类中定义了一个值为eoeMobile的String域
- package com.eoemobile.sunhr.test;
- import java.io.Serializable;
- public class Data implements Serializable{
- /**
- *
- */
- private static final long serialVersionUID = -6746185864607829411L;
- private String mValue = null;
- public Data(){
- mValue = new String("eoeMobile");
- }
- public String getValue(){
- return mValue;
- }
- }
然后在第一个Acrivity——Test1对应的xml中,添加一个Button,Test1的代码如下
- package com.eoemobile.sunhr.test;
- 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 Test1 extends Activity {
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- Button button = (Button)findViewById(R.id.test1_button);
- button.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v) {
- //Initialize the object
- Data data = new Data();
- //Put object into intent
- Intent intent = new Intent(Test1.this,Test2.class);
- intent.putExtra("DATA", data);
- startActivity(intent);
- }
- });
- }
- }
在要跳转到的Test2对应的xml中添加一个TextView,Test2代码如下
- package com.eoemobile.sunhr.test;
- import android.app.Activity;
- import android.content.Intent;
- import android.os.Bundle;
- import android.widget.TextView;
- public class Test2 extends Activity {
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.test2);
- //Get object
- Intent intent = this.getIntent();
- Data data = (Data)intent.getSerializableExtra("DATA");
- //Output
- if(data != null){
- TextView tv = (TextView)findViewById(R.id.test2_text);
- tv.setText(data.getValue());
- }
- }
- }