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