我有一项活动正在呼唤另一项活动。但它一直给我错误“java.lang.NullPointerException:尝试在空对象引用上调用虚方法'java.lang.String android.os.Bundle.getString(java.lang.String)'。
致电活动:
Intent intent1 = new Intent (this, buisnessProfileEdit.class);
Bundle data1 = new Bundle();
data1.putString("Restaurant Username",restaurantUsername);
startActivity(intent1);
被叫活动:
Intent intentReceived = getIntent();
Bundle data = intentReceived.getExtras();
restaurantUsername = data.getString("Restaurant Username");
有人可以帮我解释为什么会这样吗?
答案 0 :(得分:2)
intent1.putExtras(data1);
试试这个:
Intent intent1 = new Intent (this, buisnessProfileEdit.class);
Bundle data1 = new Bundle();
data1.putString("Restaurant Username",restaurantUsername);
intent1.putExtras(data1);
startActivity(intent1);
即使您将在Called活动中为此添加验证:
Intent intentReceived = getIntent();
Bundle data = intentReceived.getExtras();
if(data != null){
restaurantUsername = data.getString("Restaurant Username");
}else{
restaurantUsername = "";
}
尝试调用虚方法'java.lang.String 空对象上的android.os.Bundle.getString(java.lang.String)' 参考
您无法调用方法getString()
,因为您的包是空的!
答案 1 :(得分:1)
另一个更简单,更简洁的选择是从意图本身添加和获取额外内容。
在通话活动中:
Intent intent = new Intent (this, CalledActivity.class);
intent.putExtra("FOO", foo);
在被叫活动中:
Bundle extras = getIntent().getExtras();
String foo = extras.getString("FOO");
答案 2 :(得分:0)
您必须将额外内容添加到实际的Intent:
Intent intent1 = new Intent (this, buisnessProfileEdit.class);
Bundle data1 = new Bundle();
data1.putString("Restaurant Username",restaurantUsername);
intent1.putExtras(data1);
startActivity(intent1);
(PS:你在buisnessProfileEdit中输错了。)