我想把两个值传递给另一个活动,我可以用putExtra来做吗,或者我必须用一种更复杂的方式来做,从我的阅读中可以看出,例如,像这样的东西可以工作吗?
public final static String ID_EXTRA="com.fnesse.beachguide._ID";
Intent i = new Intent(this, CoastList.class);
i.putExtra(ID_EXTRA, "1", "111");
startActivity(i);
以上给出了一个错误。
- 编辑**
我尝试的第一件事类似于:
i.putExtra(ID_EXTRA1, "1");
i.putExtra(ID_EXTRA2, "111");
但ID_EXTRA2似乎覆盖了ID_EXTRA1
所以,
i.putExtra(ID_EXTRA, new String[] { "1", "111"});
看起来很简单,但是我如何从第二个活动中的数组中提取值,我一直在使用这个方法来获取单个值。
passedVar = getIntent().getStringExtra(CoastList.ID_EXTRA);
我想我必须把ID_EXTRA转换成一个数组???
7条答案
按热度按时间yxyvkwin1#
如果您愿意,您可以传递一组额外内容,而不是单个额外内容,例如:
然后,在触发的Activity中,您可以引用这些内容,如下所示:
或者(如果您愿意):
dzhpxtsq2#
可以使用多个键传递多个值。
做
当然,您必须为键定义2个常量,并且必须在新活动中分别阅读这两个常量。
也可以通过传递字符串数组
gwbalxhn3#
在类中放置额外的值
从另一个类阅读额外的值
tyg4sfes4#
Kotlin编码器的传递额外包
然后在其他活动中检索您的值,如下所示:
kmpatx3s5#
不,你不能,但你可以传递一个数组使用:
比如说
w8rqjzmb6#
您的示例将无法工作,因为
Extras
由Key
和Value
组成。您不能将多个Keys
和Values
放在一个Extra
中此外,据我所知(并注意到),您的键需要是
Strings
,但我可能在这一点上错了。试试这个:
swvgeqrz7#
对于单个的少量值来说,putExtra是完美的,但是当你传递多个值并且需要传递自定义的ArrayList或List时,我认为这是个坏主意。解决方案是你可以使用**Parcelable。你也可以使用Singleton或Serializable**。
可打包:
需要共享的可打包类。
形成您要发送到的活动
从您要接收的其他活动