是否有内置方法来检查资源是否存在,或者我是否正在做类似以下的事情:
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/