0

我想将一个字符串从一个活动传递给另一个活动,尽管我已经从其他线程的许多接受的答案中获取了参考,但我遇到了我无法调试的问题。当我如下面的代码所示注释 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");  

这是一个正在做类似事情的线程。

4

3 回答 3

3

尝试直接在意图上添加额外内容:

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

此外,您检索额外使用

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

许多 var 类型的 get/put

于 2012-04-25T07:15:33.130 回答
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);

希望这会奏效。

于 2012-04-25T07:16:00.720 回答
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);

在您的情况下不需要捆绑,因为您似乎只是在传递一个字符串,您可以使用上面的代码..

于 2012-04-25T07:30:53.917 回答