【问题标题】:NullPointerException while setting LayoutParams [duplicate]设置 LayoutParams 时出现 NullPointerException [重复]
【发布时间】:2016-07-20 07:29:35
【问题描述】:

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

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;

【问题讨论】:

    标签: java android android-layout


    【解决方案1】:

    由于您正在以编程方式创建 Button,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);
    

    【讨论】:

      猜你喜欢
      • 2021-07-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多