8

我正在尝试putExtra(String,String)在我的代码中使用来传递null. 正如参数所暗示的,第二个参数可以null是一个字符串,我可以发送它

this.getIntent().putExtra(AppConstant.TestString, null);

当我使用上面的代码时,它给了我错误提示:

方法 putExtra(String, String) 对于 Intent 类型不明确

但是它允许我使用:

this.getIntent().putExtra(AppConstant.TestString, "");

请告诉我这一点。提前致谢。

4

4 回答 4

19

当您使用null时,编译器不知道您要使用哪种类型,也无法决定使用哪种方法重载。

您可以将 null 转换为String以通知编译器您使用哪种方法:

this.getIntent().putExtra(AppConstant.TestString, (String)null);

或者,您可以创建一个变量并将其设置为null

String param = null;
this.getIntent().putExtra(AppConstant.TestString, param);
于 2013-11-13T11:09:15.680 回答
1

问题是第二个参数是 null 它不能告诉你要调用哪个方法:putExtra(String name, float value), putExtra (String name, byte[] value), putExtra (String name, long[] value), 等等...

于 2013-11-13T11:08:57.443 回答
0

这可能是因为Android无法确定您在使用时传递的内容( String,,, booleanint

this.getIntent().putExtra(AppConstant.TestString, null);

但是当你使用

this.getIntent().putExtra(AppConstant.TestString, "");

它知道您将它作为String

于 2013-11-13T11:11:08.937 回答
0

使用 intent.removeExtra(extraName) 代替。它清除了多余的部分,并且比在 putExtra 中使用类型转换更干净。

https://developer.android.com/reference/android/content/Intent.html

于 2017-04-07T19:26:45.210 回答