NullPointer设置布局参数时的异常

2022-09-03 04:19:02

我想以编程方式添加一个按钮,布局参数也应该设置。不幸的是,该应用程序给出了一个例外:

java.lang.NullPointerException:尝试写入空对象引用上的字段 'int android.view.ViewGroup$LayoutParams.height'

我不知道,为什么。你能帮我吗?这是我的代码。

 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;

答案 1

由于您以编程方式创建按钮,因此不会设置任何布局参数。因此,您需要手动设置它们,如下所示:b

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

或者至少在更改参数之前检查参数是否不为空

    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);

答案 2

推荐