2012-04-25 96 views
0

我想从1个活动传递一个字符串到另一个,虽然我从许多其他线程接受的答案中引用了,但我面临的问题是我无法调试。当我如下面的代码所示评论extras.putString时,Toast消息显示正确的地址,这意味着值被正确设置并且代码工作正常,但是当我使用extras.putString()时,由于异常,我得到NullPointerException和应用程序关闭。我的地址字符串中有很多\ n字符。逸岸就算我用extras.putString(“userAddress”,“测试”),我得到的NullPointerException通过意图传递额外信息的异常

这是我从我想打电话给FBShare活动主要活动:

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活动我我试图取值如下

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

Here is一个线程正在做类似的事情。

+3

看看@ akki的答案,你就错过了'mIntent.putExtras (额外);' – thepoosh 2012-04-25 07:17:27

回答

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); 

希望这会起作用。

3

尝试直接把多余的意图:

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

此外,您检索额外使用

Intene t = getIntent(); 
String k="key"; 
if (t.hasExtra(k)) { 
    s = t.getStringExtra(k); 
    ... 
} 

的是获得/把许多变种类型

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); 

包是不是需要在你的情况,因为它似乎是你只考取您可以用上面的一串代码..