设置LayoutParams时出现空指针异常

16

我想以编程方式添加一个按钮,应该设置哪些LayoutParams。 不幸的是,应用程序出现异常:

java.lang.NullPointerException:尝试在null对象引用上写入字段'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个回答

39

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

由于你是以编程的方式创建Button,b将不会有任何布局参数设置。所以你需要手动设置它们,像这样:

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接