【发布时间】:2011-05-10 02:22:54
【问题描述】:
我试图在两个活动之间传递一个字符串。我在其他项目中使用相同的方法完成了此操作,但由于某种原因,当我调用 intent.getStringExtra(String) 时,我得到了 NullPointerException。我还尝试通过
为附加功能创建一个 BundleBundle 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);
}
这是活动 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);
我已经尝试了几乎所有传递附加信息的替代方式,但它们似乎都以这种方式表现。我错过了什么?
【问题讨论】:
-
你是怎么解决这个问题的?
-
另一种解决方案:getExtras().get("sharedString")