【问题标题】:How do I know if a Uri is empty?我如何知道 Uri 是否为空?
【发布时间】:2015-04-28 04:39:36
【问题描述】:
我有一个应用程序,我需要让用户决定如何放置图片配置文件(相机或画廊)。我只有一个“Uri”类型的变量,但我不明白如何重置它并使其为空,或者检查它是否为空。因为当我选择一张图片时,如果你不喜欢刚刚放的那张,我必须有能力改变它。
我已经测试为
if (followUri.equals (Uri.EMPTY)) {...}
但应用程序因空点异常而崩溃。
【问题讨论】:
标签:
android
android-camera
uri
android-camera-intent
【解决方案1】:
只需检查 Empty URI 是否不等于 followUri,此检查包括 null 的检查:
if (!Uri.EMPTY.equals(followUri)) {
//handle followUri
}
【解决方案2】:
如果 Uri 本身为 null,则调用 followUri.equals(Object) 将导致 NPE。更好的解决方案:
if (followUri != null && !followUri.equals(Uri.EMPTY)) {
//doTheThing()
} else {
//followUri is null or empty
}
【解决方案4】:
检查followUri != null 是否为空,然后你可以检查它是否为空,你会得到NPE,因为followUri 是null,不是吗?之后可以设置followUri = Uri.EMPTY
【解决方案5】:
只是添加我的 2 美分,一个空 Uri 不会被视为空。 Uri.EMPTY 的值为 ""。如果您期望 null == Uri.EMPTY 为 trueenter code here,这可能会导致一些混乱。还有一个小的 kotlin 代码 sn-p :
fun isUriEmpty(uri: Uri?):Boolean{
return uri == null || uri == Uri.EMPTY
}