我想以编程方式添加一个按钮,也应该设置 LayoutParams。
不幸的是,该应用程序出现异常:
java.lang.NullPointerException: Attempt to write to field 'int
android.view.ViewGroup$LayoutParams.height' on a null object reference
我不知道为什么。你可以帮帮我吗?
这是我的代码。
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;
由于您以编程方式创建 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);