【问题标题】:how to pass Arraylist<BeanClass> from one activity to another?如何将 Arraylist<BeanClass> 从一个活动传递到另一个活动?
【发布时间】:2012-08-27 22:35:46
【问题描述】:

我有两个名为“活动 A”和“活动 B”的活动。在我的活动 A 中,我需要将 Arraylist&lt;BeanClass&gt; 传递给活动 B。这是活动 A 代码....

Arraylist<BeanClass> list;
list.add(new BeanClass(nm, Add, Phn));
Intent i = new Intent(Activity A.this,Activity B.class);

现在如何将list 传递给下一个活动并接收它...

这是一个 BeanClass.java

public class BeanClass 
{
    String name,address,phone;

    BeanClass(String name,String address,String phone)
    {

        this.name=name;
        this.address=address;
        this.phone=phone;
    }

}

【问题讨论】:

  • 您尚未初始化 Arraylist&lt;BeanClass&gt; list; 并且您传递了错误的参数。请发布正确代码。
  • 其实我是在我的代码中做到的,但是在这里忘记了......
  • 参数怎么错了..?? nm,Add,phn 是 String 本身...
  • 我需要知道我可以在这里使用哪种“putExtra”方法

标签: android serializable parcelable


【解决方案1】:

您必须将BeanClass 类设为可序列化。

public class BeanClass implements Serializable
{
  //fields
  //constructors
  //setter/getter 
}

准备List 并通过Intent.putExtra() 传递它

 Intent intent=new Intent(MainActivity.this, NextActivity.class);
 ArrayList<BeanClass> list=new ArrayList<BeanClass>();
 list.add(new BeanClass(nm, Add, Phn));
 ...

 intent.putExtra("list", list); 
 startActivity(intent);

并在NextActivity's onCreate 方法中接收List

 Intent intent=getIntent();
 ArrayList<BeanClass> list=(ArrayList<BeanClass>)intent.getSerializableExtra("list");

【讨论】:

  • 我可以用 Vector 而不是 ArrayList 做同样的事情吗?
  • 是的,Vector 是可序列化的。但是您为什么对 legacy API感兴趣
  • 因为我是初学者,所以我对遗留 API 和可序列化一无所知。你能简单解释一下那些东西吗?感谢您宝贵的 cmets....
  • 遗留 API 有什么缺点吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-11
  • 1970-01-01
  • 2021-03-15
  • 2015-02-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多