将 ArrayList 传递给 Activity
Posted
技术标签:
【中文标题】将 ArrayList 传递给 Activity【英文标题】:Pass ArrayList from to Activity 【发布时间】:2017-01-25 14:03:52 【问题描述】:我有一个ArrayList
的CustomInput
对象和DataWrapper
类,其中包含ArrayList
的getter 和setter。我想将DataWrapper
从非活动类传递到活动类。我已经尝试实现 Serializable,但我得到 Parcelable 遇到 ioexception 写入可序列化对象 原因是 NotSerializableException。
DataWrapper.java
public class DataWrapper implements Serializable
private static final long serialVersionUID = 1L;
private ArrayList<CustomInput> customInputs;
public void setFields(ArrayList<CustomInput> data)
this.customInputs = data;
public ArrayList<CustomInput> getFields()
return this.customInputs;
非活动类
public void showActivity()
Intent intent = new Intent(request, ActivityKorak.class);
intent.putExtra("title", title);
DataWrapper dw = new DataWrapper();
dw.setFields(fields);
intent.putExtra("data", dw);
request.startActivity(intent);
ActivityKorak.class->onCreate()
Intent intent = getIntent();
String title = intent.getStringExtra("title");
DataWrapper dw = (DataWrapper) intent.getSerializableExtra("data");
ArrayList<CustomInput> fields = dw.getFields();
【问题讨论】:
你好为什么在Serializable中创建数组列表。它会自动以数组的形式工作。 如果你想使用 Serializable,那么我将举例说明它是如何工作的 我只想将ArrayList传递给Activity,不必使用DataWrapper。 我已经添加了我的答案可以尝试一次 【参考方案1】:无需创建新类DataWrapper.java。因为 ArrayList 是可序列化的。
非活动类
public void showActivity()
Intent intent = new Intent(request, ActivityKorak.class);
intent.putExtra("title", title);
intent.putExtra("data", fields);
request.startActivity(intent);
ActivityKorak.class->onCreate()
Intent intent = getIntent();
String title = intent.getStringExtra("title");
DataWrapper dw = (DataWrapper) intent.getSerializableExtra("data");
ArrayList<CustomInput> fields = dw.getFields();
【讨论】:
【参考方案2】:您好,请检查我们如何发送 arraylist
ArrayList<HashMap<String, String>> aldata = new ArrayList<HashMap<String, String>>();
我假设这里的数据已经添加到您的数组列表中,请检查
发送数据并开始其他活动,
Intent intent = new Intent(this,AbcActivity.class);
intent.putExtra("aldata", aldata_TaxiLine);
startActivity(intent);
在您的下一个活动中获取数据,
ArrayList<HashMap<String, String>> aldata1;
并在你的 oncreate 中调用它
aldata = (ArrayList<HashMap<String, String>>) getIntent()
.getSerializableExtra("aldata");
希望这会对你有所帮助。
【讨论】:
以上是关于将 ArrayList 传递给 Activity的主要内容,如果未能解决你的问题,请参考以下文章
SQL Server (2008) 将 ArrayList 或字符串传递给 SP 用于 IN()
如何将 ArrayList 项传递给 Flutter 中的 http 请求(post)正文?