Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在生成的TextView上以编程方式设置页边距时出错_Java_Android_Android Layout_Textview - Fatal编程技术网

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

Java 在生成的TextView上以编程方式设置页边距时出错,java,android,android-layout,textview,Java,Android,Android Layout,Textview,我生成如下文本视图: TextView myView = new TextView(this); myView.setText(Html.fromHtml(myString)); linearLayout2.addView(myView); 当我将此代码更改为此以设置边距时: TextView myView = new TextView(this); myView.setText(Html.fromHtml(myString)); LinearLayou

我生成如下文本视图:

   TextView myView  = new TextView(this);
   myView.setText(Html.fromHtml(myString));
   linearLayout2.addView(myView);
当我将此代码更改为此以设置边距时:

   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);
我得到这个错误:

无法启动活动 ComponentInfo{com.example./com.example.Activity}: java.lang.NullPointerException:尝试调用虚拟方法“void” android.widget.LinearLayout$LayoutParams.setMarginsint,int,int, null对象引用上的int

我怎样才能消除这个错误


谢谢。

您可以在添加TextView时开始传递LayoutParams的实例。例如

您应该创建 新建LinearLayout.LayoutParamsLinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容


而不是从视图中获取它们

问题是一致的

LinearLayout.LayoutParams params = (LinearLayout.LayoutParams)myView.getLayoutParams();
myView.getLayoutParams;将返回null,因为它尚未添加到任何视图中。您只需首先在linearLayout2中添加视图,然后就可以从视图中获取LayoutParams

或者,您可以创建自己的布局参数并将其指定给视图。像这样

LinearLayout.LayoutParam params= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)

您应该创建新的LinearLayout.LayoutParamsLinearLayout.LayoutParams.WRAP_内容,LinearLayout.LayoutParams.WRAP_内容,而不是从视图中获取它们。
LinearLayout.LayoutParam params= new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)