Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查Android中是否存在捆绑包的一部分_Android_If Statement_Nullpointerexception_Bundles - Fatal编程技术网

检查Android中是否存在捆绑包的一部分

检查Android中是否存在捆绑包的一部分,android,if-statement,nullpointerexception,bundles,Android,If Statement,Nullpointerexception,Bundles,我正在处理一个应用程序,并从列表视图创建一个包,其中包括所选项目和上一个项目。我需要确定的是,前一个项目是否真的被捆绑了。如果它存在,我需要信息,但是如果它不存在,那么我需要设置我的文本视图来反映这一点。但是,如果在尝试加载接收活动时不存在空指针异常,我会得到一个空指针异常(绑定活动不会像我在调试过程中发现的那样导致崩溃-我会在崩溃之前测试绑定中的数据)。我已经包含了接收活动的代码 Bundle evmBundle = this.getIntent().getExtras();

我正在处理一个应用程序,并从列表视图创建一个包,其中包括所选项目和上一个项目。我需要确定的是,前一个项目是否真的被捆绑了。如果它存在,我需要信息,但是如果它不存在,那么我需要设置我的文本视图来反映这一点。但是,如果在尝试加载接收活动时不存在空指针异常,我会得到一个空指针异常(绑定活动不会像我在调试过程中发现的那样导致崩溃-我会在崩溃之前测试绑定中的数据)。我已经包含了接收活动的代码

    Bundle evmBundle = this.getIntent().getExtras();
    final EVMData evm = (EVMData) evmBundle.getSerializable("evm");

    final Project project = (Project) evmBundle.getSerializable("project");

            if (!evmBundle.getSerializable("prvEVM").equals(null)){
        final EVMData prvEvm = (EVMData) evmBundle.getSerializable("prvEVM");
        edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
        edtPrvAC.setText(prvEvm.getAc().toString());
    }
    else{
        edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
        edtPrvAC.setText("0");
    }
我知道“prvEVM”的包中传递了一些信息,因为它在调试器中作为包的一部分出现

我还试着先把它从包里拿出来,然后试着比较一下。将其从捆绑包中取出后,prvEvm为null(查看调试器中的变量),因此我认为类似的方法可能会起作用:

     if (!prvEvm.equals(null)){
        edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
        edtPrvAC.setText(prvEvm.getAc().toString());
    }else{
        edtPrvAC = (TextView) findViewById(R.id.edtPrvEVMAC);
        edtPrvAC.setText("0");
    }
但是我得到了一个NullPointerException,因为prvEvm为Null。所以我试着翻转if测试,但得到了相同的结果。我应该注意,无论我如何设置它,如果prvEvm不为null,这里的所有配置都可以工作——请求的数据都放在TextView中。基本上,我需要能够绕过这个空指针异常。我知道这个对象是空的,我想测试一下,如果是空的话,这个对象就不用了。它只会为null一次。

在对null对象调用方法(equals)时,不要使用
equals(null)
。相反,请与null进行比较:

if (prvEvm != null){

此外,
equals(null)
总是返回false。

有时候,当答案这么简单时,我真的觉得自己很愚蠢。非常感谢!为我保存一个数据库读取(当我看到这一点时,我刚刚完成了代码并进行了测试)。我感谢你的帮助!