我想在两个活动之间传递一个字符串。我曾在其他项目中使用相同的方法完成了这个操作,但是出现了NullPointerException错误,当我调用intent.getStringExtra(String)函数时。我也尝试通过创建一个Bundle对象来为额外的数据设置值,代码如下:
Bundle b = getIntent().getExtras();
但是它也返回了 null。以下是我目前正在尝试使用的代码。
活动 A:
Intent myIntent = null;
String select = "";
if (selection.equals("Chandelle")) {
myIntent = new Intent(Commercial.this, Chandelle.class);
select = "Chandelle";
} else if (selection.equals("Eights on Pylons")) {
myIntent = new Intent(Commercial.this, EightsOnPylons.class);
select = "Eights on Pylons";
}
// Start the activity
if (myIntent != null) {
myIntent.putExtra("selection", select);
Log.d("*** OUTBOUND INTENT: ", "" + myIntent.getExtras().get("selection"));
startActivity(myIntent);
}
这是Activity B中试图获取额外信息的代码:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent i = getIntent();
if (i == null)
Log.d("***DEBUG****", "Intent was null");
else
Log.d("**** DEBUG ***", "Intent OK");
String MANEUVER_ID = i.getStringExtra("selection"); //Exception points to this line
Log.d("*** DEBUG", rec + " " + MANEUVER_ID);
我已经尝试了几乎所有的传递额外信息的替代方式,但它们似乎都表现出这种行为。我错过了什么?