java - 如何检查Android中是否存在资源

标签 java android

是否有内置方法来检查资源是否存在,或者我是否正在做类似以下的事情:

boolean result;
int test = mContext.getResources().getIdentifier("my_resource_name", "drawable", mContext.getPackageName());
result = test != 0;

最佳答案

根据 javadoc,您不需要 try catch: http://developer.android.com/reference/android/content/res/Resources.html#getIdentifier%28java.lang.String,%20java.lang.String,%20java.lang.String%29

如果getIdentifier()返回零,表示不存在这样的资源。
0 - 也是非法资源 ID。

所以你的结果 boolean 变量等价于 (test != 0)

不管怎样,你的 try/finally 很糟糕,因为它所做的一切都会将结果变量设置为 false,即使从 try 的主体中抛出异常:mContext.get..... 然后它只是在退出 finally 子句后“重新抛出”异常。而且我想这不是你想要在异常情况下做的事情。

关于java - 如何检查Android中是否存在资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4539630/

相关文章:

android - ExoPlayer 无法播放 Adob​​e 实时流编码器流式传输的音频/视频 (RTMP)

android - 如何在 Android 中获取内存文件的 FileInputStream?该文件位于我在应用程序空间中创建的自定义文件夹中

java - 如何在从 URL(使用 http 连接)下载期间检索文件的大小?

java - 向 "if"添加多个条件

getResourceAsStream 的 java.lang.NullPointerException

java - java中如何在类的派生类中查找字段?

android - Gradle构建在Android Studio中无限执行

java - Tomcat 如何处理 keystore 中的多个 SSL 证书?

java - 使用程序集插件进行 Maven 构建时出错

java - 我不明白 eclipse 的错误