1

我想在Intent. 一握一doublelong。这可能吗?

如果是这样,我将如何做以及如何从每个额外的信息中获取信息?

4

4 回答 4

10

您可以随心所欲地添加任意数量的附加Intent信息,它们都只是关键值数据:

Intent intent = new Intent();
intent.putExtra("name", "MyName");
intent.putExtra("age", 35);
intent.putExtra("weight", 155.6);

并且可以使用相同的键名检索它们:

String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0);
double weight = intent.getDoubleExtra("weight", 0.0);
于 2012-07-12T22:16:14.120 回答
1
intent.putExtra(@ExtraDoubleKey, @ExtraDoubleValue);
intent.putExtra(@ExtraLongKey, @ExtraLongValue);

其中@ExtraDoubleKey 是一个字符串,您将使用它来访问extra(即“价格”或其他东西),而@ExtraDoubleValue 是extra 的值(您希望传递的双变量)。@ExtraLongKey 和@ExtraLongValue 也是如此。

然后,要在下一个活动中访问额外内容,您可以使用:

double doubleValue = getIntent().getExtras().getDouble(@ExtraDoubleKey);
long longValue = getIntent().getExtras().getLong(@ExtraLongKey);

使用键 @ExtraDoubleKey 获取双倍额外的值。

于 2012-07-12T22:19:53.753 回答
1

https://stackoverflow.com/a/11461530/776075

Devunwired 是正确的。但我看到的方式是每个类型只能保留一个值。像一个字符串,一个整数,一个双精度等。

您不能包含 2 个字符串值。或两个整数。我在一个程序上经历过这个问题,我通过使用一个字符串和一个布尔值来克服它。

于 2013-02-21T12:08:12.550 回答
0

您可以使用Bundle它并将其作为参数传递给 Intent。

Intent nextActivity = new Intent(this, Activity2.class);
Bundle passData = new Bundle(); //to hold your data
passDataBndl.putString("fname", fname); //put in some String. the first parameter to it is the id, and the second parameter is the value
nextActivity.putExtras(passDataBndl); //Add bundle to the Intent
startActivityForResult(nextActivity, 0); //Start Intent
于 2012-07-12T22:14:58.427 回答