Question

When inflating an element with findViewById, Android Studio always warns me that my inflated view may return null

View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false);

and suggests I do something like surround with my statement with a null check:

if (v != null) {
    mGridView = (GridView)v.findViewById(R.id.gridView);
}

Is it recommended to always do the mentioned null check before inflating an element?

EDIT: Adding lint pictures

enter image description here enter image description here

Was it helpful?

Solution 2

You can ignore this warning and move ahead with your code if you are sure that the id you are passing does exist within your applications context, if you are not sure then its better to do a null check before accessing the elements in this view because

     View v = inflater.inflate(R.layout.fragment_photo_gallery, container, false);

will return null in case "R.layout.fragment_photo_gallery" is incorrect or invalid renderring v as null .

Thus an attempt like this

     mGridView = (GridView)v.findViewById(R.id.gridView);

may result in a null pointer exception

OTHER TIPS

I think you should never do that.

If you do that you are masking a logic error in your program, in case you are passing a wrong id to your findView.

If you are passing a correct id but for any reason inflater returns null that's Android problem (that will never actually happen) and you also should do nothing.

I think this warning does not come from Android Lint.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top