[英]Passing null in putExtra in Android Intent giving compile time error?
我正在尝试在我的代码中使用putExtra(String,String)
来传递null
。 正如参数所示,第二个参数可以为null
因为它是一个字符串,我可以发送它
this.getIntent().putExtra(AppConstant.TestString, null);
当我使用上面的代码时,它给我错误说:
方法putExtra(String,String)对于Intent类型是不明确的
但它允许我使用:
this.getIntent().putExtra(AppConstant.TestString, "");
请在此赐教我。 提前致谢。
当您使用null
,编译器不知道您要使用哪种类型,并且无法确定要使用的方法的重载。
您可以将null转换为String
以通知编译器您使用哪种方法:
this.getIntent().putExtra(AppConstant.TestString, (String)null);
或者,您可以创建一个变量并将其设置为null
:
String param = null;
this.getIntent().putExtra(AppConstant.TestString, param);
问题是因为第二个参数为null它无法告诉您要调用哪个方法: putExtra(String name, float value)
, putExtra (String name, byte[] value)
, putExtra (String name, long[] value)
等等......
这可能是因为Android在您使用时无法确定您传递的内容( String
, boolean
, int
)
this.getIntent().putExtra(AppConstant.TestString, null);
但是当你使用的时候
this.getIntent().putExtra(AppConstant.TestString, "");
它知道你将它作为String
传递
请改用intent.removeExtra(extraName)。 它清除了额外的内容,比在putExtra中使用类型转换更干净。
https://developer.android.com/reference/android/content/Intent.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.