Home » Android » java – NullPointerException while setting LayoutParams

java – NullPointerException while setting LayoutParams

Posted by: admin June 15, 2020 Leave a comment

Questions:

I want to add a button programmatically, which LayoutParams should be set too.
Unfortunaly the app gives an exception:

java.lang.NullPointerException: Attempt to write to field ‘int
android.view.ViewGroup$LayoutParams.height’ on a null object reference

I have no idea, why. Could you help me?
Here is my code.

 Button b = new Button(getApplicationContext());
        b.setText(R.string.klick);
        ViewGroup.LayoutParams params = b.getLayoutParams();
        params.height = ViewGroup.LayoutParams.MATCH_PARENT;
        params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
How to&Answers:

Since you are creating a Button programmatically b will not have any layout params set. So you’ll need to set them manually like this:

ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
b.setLayoutParams(params);

Or at least check if params are not null before changing them

    ViewGroup.LayoutParams params = b.getLayoutParams();
    if (params != null) {
        params.width= ViewGroup.LayoutParams.MATCH_PARENT;
        params.height = ViewGroup.LayoutParams.WRAP_CONTENT;
    } else
        params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);