我正在尝试在代码中使用putExtra(String,String)
来传递null
。
正如参数所示,第二个参数可以是null
,因为它是一个字符串,我可以发送它
this.getIntent().putExtra(AppConstant.TestString, null);
当我使用上面的代码时,它给出了错误说:
方法putExtra(String,String)对于Intent类型不明确
然而它允许我使用:
this.getIntent().putExtra(AppConstant.TestString, "");
请在此赐教。提前谢谢。
答案 0 :(得分:16)
当您使用null
时,编译器不知道您要使用哪种类型,并且无法确定要使用的方法的重载。
您可以将null转换为String
以通知编译器您使用哪种方法:
this.getIntent().putExtra(AppConstant.TestString, (String)null);
或者,您可以创建变量并将其设置为null
:
String param = null;
this.getIntent().putExtra(AppConstant.TestString, param);
答案 1 :(得分:1)
问题是因为第二个参数为null,它无法分辨您要调用的方法:putExtra(String name, float value)
,putExtra (String name, byte[] value)
,putExtra (String name, long[] value)
等...
答案 2 :(得分:0)
这可能是因为Android在您使用
时无法确定您传递的内容(String
,boolean
,int
)
this.getIntent().putExtra(AppConstant.TestString, null);
但是当你使用
时 this.getIntent().putExtra(AppConstant.TestString, "");
它知道您将其作为String
答案 3 :(得分:0)
请改用intent.removeExtra(extraName)。它清除了额外的内容,比在putExtra中使用类型转换更干净。
https://developer.android.com/reference/android/content/Intent.html