春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述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);
}
推荐阅读
- getApplicationContext给出空指针异常[重复]
- 设置Textview时的Android java.lang.NullPointerException [重复]
- 尝试在空对象引用[duplicate]上调用虚方法'java.io.File android.content.Context.getCacheDir()'
- android.os.Looper对空对象引用的android.content.Context.getMainLooper()
- Android事物(在Raspberry PI 3上通过USB UART接收数据时出现NullPointerException)
- Android NullPointerException(println需要一条消息)
- android(canvas触摸不在s4中工作)
- 如何在Symfony 1.4中为表单禁用CSRF保护/验证
- 如何从Symfony 1.4中的任务(控制台命令)访问数据库(Doctrine连接)