如何将数组传递给另一个活动?

Posted

技术标签:

【中文标题】如何将数组传递给另一个活动?【英文标题】:How to Pass Array to another activity? 【发布时间】:2011-11-07 15:05:26 【问题描述】:

我知道我们可以使用 putExtra()getExtra 方法将任何对象及其值传递给另一个活动。 但现在我想知道是否可以将数组传递给另一个Activity? 或者,如果是,那么让我知道如何将数组传递给另一个 Activity ? 谢谢。

【问题讨论】:

【参考方案1】:

首先,你应该知道两个问题:

为了通过意图发送某事,它必须是可包裹的 即使对象是可调节的,您可以通过意图发送的数据量也是有限的。

一种可能的方法是拥有一个静态结构,您可以在其中存储您的数据,并且只传递该数据的索引。使用此索引,新活动可以访问这些数据。希望这会有所帮助。

【讨论】:

【参考方案2】:

Bundle 类有很多 putXxxxArray() 方法。

    putBooleanArray putByteArray putCharArray putCharSequenceArray putDoubleArray putFloatArray putIntArray putLongArray putParcelableArray putShortArray putStringArray

如果您希望传递某种Object,您应该查看Parcelable 接口,因为您的对象需要实现它。

【讨论】:

【参考方案3】:
Bundle b = new Bundle();
b.putStringArray(key, new String[]value1, value2);
Intent i=new Intent(context, Class);
i.putExtras(b);

为了接收

Bundle b = this.getIntent().getExtras();
String[] array=b.getStringArray(key);

【讨论】:

不错不错。但是如果我想传递没有价值的数组怎么办。我的意思是如果我已经将值存储到数组中,现在如果我想通过数组的名称将它传递给另一个活动那么? 看看这个页面androidhub.wordpress.com/2011/08/03/…【参考方案4】:

请参阅this 问题。基本上:

Bundle b=new Bundle();
b.putStringArray(key, new String[]value1, value2);
Intent i=new Intent(context, Class);
i.putExtras(b);

检索:

Bundle b=this.getIntent().getExtras();
String[] array=b.getStringArray(key);

【讨论】:

【参考方案5】:
 Intent intent = new Intent();
 Bundle bundle = new Bundle();
 bundle.putSerializable("bundle",Parceble Object);
 intent.putExtra(String key, String[] values);
 intent.putExtras(bundle);

对于不同类型的数组看here。

谢谢

【讨论】:

好的。我是否还必须使用数组发送值?获取数据只能取名字吗? 在这里,在传递数组的过程中,您会获得静态值。但就我而言,我不知道数组中有多少个值。意味着它可以根据活动调用进行更改。那么如何定义该数组的范围和值??? 如果您在运行时不知道数组的大小,那么您可以使用 ArrayList 之类的 public void putStringArrayList (String key, ArrayList value) 那么我会将数组 lise 从一个活动传递到另一个活动吗? 如果我创建 bean 类并为此使用 getter setter 方法,那么这是一个好主意吗????

以上是关于如何将数组传递给另一个活动?的主要内容,如果未能解决你的问题,请参考以下文章

使用自定义视图将字符串数组传递给另一个活动

将捆绑包/意图传递给另一个活动?

如何将 LatLng 的数组列表从一个活动传递到另一个活动

如何将异步任务结果传递给另一个活动?

如何将单击的列表项值传递给另一个活动?

如何将收到的意图传递给另一个应用程序/活动?