使用findViewById
对元素进行充气时,Android Studio始终警告我,我的虚增视图可能会返回null
View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false);
并建议我使用null检查执行类似环绕声的操作:
if (v != null) {
mGridView = (GridView)v.findViewById(R.id.gridView);
}
是否建议在膨胀元素之前始终执行上述的空检查?
编辑:添加lint图片
答案 0 :(得分:3)
我认为你永远不应该这样做。
如果这样做,则表示您正在屏蔽程序中的逻辑错误,以防您将错误的ID传递给findView。
如果你传递的是正确的id,但由于任何原因,inflater会返回null那个Android问题(实际上永远不会发生),你也应该什么都不做。
我认为此警告不是来自Android Lint。
答案 1 :(得分:0)
如果您确定要传递的ID确实存在于应用程序上下文中,则可以忽略此警告并继续执行代码,如果您不确定在访问此元素之前进行空检查是否更好查看因为
View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false);
如果“R.layout.fragment_photo_gallery”不正确或无效渲染v为null,将返回null。
因此这样的尝试
mGridView = (GridView)v.findViewById(R.id.gridView);
可能导致空指针异常