gpt4 book ai didi

android - 检查 Android 中是否存在包的一部分

转载 作者:行者123 更新时间:2023-11-29 18:12:13 26 4
gpt4 key购买 nike

我正在开发一个应用程序,我从 ListView 中创建了一个包,其中包括所选项目和上一个项目。我需要确定的是,上一个项目是否真的被 bundle 了。如果它存在,我想要信息,但如果它不存在,那么我需要设置我的 TextView 来反射(reflect)它。但是如果在尝试加载接收 Activity 时它不存在,我会得到一个空指针异常( bundle Activity 不会导致崩溃,正如我在调试期间发现的那样 - 我到了我正在测试数据的地步在它崩溃之前 bundle )。所以我包含了接收 Activity 中的代码。

    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”的 bundle 中传递了一些东西,因为它在调试器中显示为 bundle 的一部分。

我还尝试先将其从 bundle 中拉出,然后再进行比较。将其从 bundle 中拉出后,prvEvm 为空(查看调试器中的变量),所以我认为这样的事情可能有效:

     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 不为空,这里的所有配置都有效 - 请求的数据放在 TextView 中。基本上,我需要能够绕过这个空指针异常。我知道该对象为空,我想对此进行测试,如果是,则不使用该对象。它只会为 null 一次。

最佳答案

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

if (prvEvm != null){

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

关于android - 检查 Android 中是否存在包的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10062916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com