如何知道Uri是否为空?

时间:2015-02-25 23:22:58

标签: android android-camera uri android-camera-intent

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

4 个答案:

答案 0 :(得分:12)

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

        if (!Uri.EMPTY.equals(followUri)) {
            //handle followUri
        }

答案 1 :(得分:3)

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

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

答案 2 :(得分:1)

如果您的应用在该阶段与NPE崩溃followUri很可能是null

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

答案 3 :(得分:0)

检查是否followUri != null,之后您可以检查它是否为空,您得到NPE,因为followUrinull不是吗?之后,您可以设置followUri = Uri.EMPTY