通过意图传递额外内容时出现异常

时间:2012-04-25 07:10:41

标签: android android-intent

我想将一个字符串从一个活动传递给另一个活动,虽然我已经从其他线程的许多接受的答案中引用了,但我遇到的问题是我无法调试。当我在下面的代码中注释extras.putString时,Toast消息显示正确的地址,这意味着正确设置了值并且代码工作正常但是当我使用extras.putString()时,我得到NullPointerException并且应用程序因异常而关闭。我的地址字符串中有很多\ n个字符。事实上即使我使用extras.putString(“userAddress”,“test”)我得到NullPointerException

这是我想要调用FBShare Activity的主要活动:

Intent mIntent = new Intent(this, FBShare.class);   
Bundle extras = mIntent.getExtras();
String currentAddress = getCurrentAddress(ourLocation);
Toast.makeText(getBaseContext(), getCurrentAddress(ourLocation), Toast.LENGTH_SHORT).show();
extras.putString("userAddress", currentAddress);
startActivity(mIntent);

在FBShare Activity中,我尝试按如下方式获取值

strAddress = getIntent().getExtras().getString("userAddress");  

Here is一个做同样事情的线程。

3 个答案:

答案 0 :(得分:3)

尝试直接增加意图:

mIntent.putExtra("Key", "Value")

此外,您还可以使用

检索额外内容
Intene t = getIntent();
String k="key";
if (t.hasExtra(k)) {
  s = t.getStringExtra(k);
  ...
}

获取/放置许多var类型

答案 1 :(得分:3)

试试我的代码

Intent mIntent = new Intent(this, FBShare.class);   
Bundle extras = new Bundle();
String currentAddress = getCurrentAddress(ourLocation);
Toast.makeText(getBaseContext(), getCurrentAddress(ourLocation), Toast.LENGTH_SHORT).show();
extras.putString("userAddress", currentAddress);
mIntent.putExtras(extras);
startActivity(mIntent);
希望这会奏效。

答案 2 :(得分:1)

Intent mIntent = new Intent(this, FBShare.class);   
String currentAddress = getCurrentAddress(ourLocation);
Toast.makeText(getBaseContext(), getCurrentAddress(ourLocation), Toast.LENGTH_SHORT).show();
mIntent.putString("userAddress", currentAddress);
startActivity(mIntent);

在您的情况下不需要Bundle,因为您似乎只是在使用上面的代码来设置字符串..