Android Studio。 AddRule Null指针异常

春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述Android Studio。 AddRule Null指针异常相关的知识,希望能为你提供帮助。
我在android Studio中遇到了addRule函数的问题。我循环一个Array语言列表。对于每种语言,我都添加了Textview。添加1个textview后,下一个Textview应该在第一个Textview下对齐。我在addrule行得到一个NullpointerException。我的设置和获取视图的ID是否错误?抱歉Xml不完整。整个Xml代码位于相对布局中。

private void listLanguages() {RelativeLayout relativelayout = (RelativeLayout) findViewById(R.id.addrole); int e; for (int i=0; i < languages.size(); i++) { TextView textview = new TextView(AddRole.this); if (i > 0) { e = i-1; RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) textview.getLayoutParams(); lp.addRule(RelativeLayout.BELOW,e); textview.setLayoutParams(lp); } textview.setText(languages.get(i)); textview.setId(i); relativelayout.addView(textview); }

XML:
< include layout = "@layout/esnmis" android:id="@+id/esnmis" android:layout_width="match_parent" android:layout_height="55dp"> < /include> < TextView android:layout_width="250dp" android:layout_height="wrap_content" android:inputType="textPersonName" android:layout_below="@+id/esnmis" android:textSize="30dp" android:gravity="center" android:id="@+id/description" android:layout_marginTop="4dp" android:layout_centerHorizontal="true" /> < RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/description" android:id="@+id/addrole"> < /RelativeLayout> < Button android:text="" android:textSize="20dp" android:textAllCaps="false" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/insert" android:layout_below="@+id/addrole" android:layout_centerHorizontal="true" android:layout_marginTop="5dp" />

【Android Studio。 AddRule Null指针异常】错误:
E / AndroidRuntime:FATAL EXCEPTION:main进程:com.example.obo.database,PID:11262 java.lang.NullPointerException:尝试从空对象引用上的字段'int android.view.ViewGroup $ LayoutParams.width'读取android.view.ViewGroup $ LayoutParams。(ViewGroup.java:7346)在android.view.ViewGroup $ MarginLayoutParams。(ViewGroup.java:7643)的android.widget.RelativeLayout $ LayoutParams。(RelativeLayout.java:1345)at com。 example.obo.database.AddRole.listLanguages(AddRole.java:107)at com.example.obo.database.AddRole.access $ 300(AddRole.java:28)at com.example.obo.database.AddRole $ 1 $ 1.run (AddRole.java:79)android.os.Handler.handleCallback(Handler.java:739)android.os.Handler.dispatchMessage(Handler.java:95)android.os.Looper.loop(Looper.java: 148)在android.app.ActivityThread.main(ActivityThread.java:7331)at java.lang.reflect.Method.invoke(Native Method)at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java: 1230)在com.android.internal.os.ZygoteInit。主(ZygoteInit.java:1120)
答案感谢shadowsheep和Mike M.我的应用程序工作正常。对于遇到同样问题的其他人来说,这是一个解决方案:
private void listLanguages(){
RelativeLayout relativelayout = (RelativeLayout) findViewById(R.id.addrole); int e; for (int i=1; i < languages.size() + 1; i++) { TextView textview = new TextView(AddRole.this); if (i > 1) { e = i-1; RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); lp.addRule(RelativeLayout.BELOW,e); textview.setLayoutParams(lp); } textview.setText(languages.get(i - 1)); textview.setId(i); relativelayout.addView(textview);

}

    推荐阅读