我想在Intent
. 一握一double
握long
。这可能吗?
如果是这样,我将如何做以及如何从每个额外的信息中获取信息?
您可以随心所欲地添加任意数量的附加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);
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 获取双倍额外的值。
https://stackoverflow.com/a/11461530/776075
Devunwired 是正确的。但我看到的方式是每个类型只能保留一个值。像一个字符串,一个整数,一个双精度等。
您不能包含 2 个字符串值。或两个整数。我在一个程序上经历过这个问题,我通过使用一个字符串和一个布尔值来克服它。
您可以使用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