如何知道Uri是否为空?

Ale*_*icu 3 android uri android-camera android-camera-intent

我有一个应用程序,我需要能够让用户决定如何放置图片配置文件(相机或图库).我只有一个"Uri"类型的变量,但我不明白如何重置它并使其成为EMPTY,或检查它是否为EMPTY.因为当我选择一张照片时,如果你不喜欢那张照片,我必须能够改变照片.我测试过"if(followUri.equals(Uri.EMPTY)){...}",但应用程序崩溃时出现空点异常.

小智 13

只需检查Empty URI是否不等于followUri,此检查包括检查null:

        if (!Uri.EMPTY.equals(followUri)) {
            //handle followUri
        }
Run Code Online (Sandbox Code Playgroud)


小智 9

如果 Uri 本身为空,则调用 followUri.equals(Object) 将导致 NPE。更好的解决方案:

if (followUri != null && !followUri.equals(Uri.EMPTY)) {
    //doTheThing()
} else {
    //followUri is null or empty
}
Run Code Online (Sandbox Code Playgroud)


ci_*_*ci_ 1

followUri如果您的应用程序很可能在该阶段因 NPE 崩溃null

此外,Uri对象是不可变的,请参阅此处http://developer.android.com/reference/android/net/Uri.html,因此您无法“重置”它。