以编程方式在生成的TextView上设置边距时出错

jas*_*son 0 java android textview android-layout

我生成像这样的textViews:

   TextView myView  = new TextView(this);
   myView.setText(Html.fromHtml(myString));
   linearLayout2.addView(myView);
Run Code Online (Sandbox Code Playgroud)

当我将此代码更改为此设置边距时:

   TextView myView  = new TextView(this);
   myView.setText(Html.fromHtml(myString));
   LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)myView.getLayoutParams();
   params.setMargins(20, 0, 0, 0);
   myView.setLayoutParams(params);
   linearLayout2.addView(myView);
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

无法启动活动ComponentInfo {com.example./com.example.Activity}:java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.LinearLayout $ LayoutParams.setMargins(int,int,int,int)'在空对象引用上

如何摆脱这个错误?

谢谢。

Far*_*hed 5

你应该创造 new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)

而不是从视图中获取它们。