Android 在TableLayout中添加行时出现NullPointerException
最后一条指令给出了无法启动活动组件信息:java.lang.NullPointerException。但是,使用相同指令的干净项目中的相同代码不是 table.xml是: 试试这个:Android 在TableLayout中添加行时出现NullPointerException,android,android-tablelayout,tablelayout,Android,Android Tablelayout,Tablelayout,最后一条指令给出了无法启动活动组件信息:java.lang.NullPointerException。但是,使用相同指令的干净项目中的相同代码不是 table.xml是: 试试这个: 04-27 14:19:27.267: E/AndroidRuntime(2503): FATAL EXCEPTION: main 04-27 14:19:27.267: E/AndroidRuntime(2503): java.lang.RuntimeException: Unable to start acti
04-27 14:19:27.267: E/AndroidRuntime(2503): FATAL EXCEPTION: main
04-27 14:19:27.267: E/AndroidRuntime(2503): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.seapredictions/com.seapredictions.ShowData}: java.lang.NullPointerException
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.ActivityThread.access$600(ActivityThread.java:123)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.os.Handler.dispatchMessage(Handler.java:99)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.os.Looper.loop(Looper.java:137)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.ActivityThread.main(ActivityThread.java:4424)
04-27 14:19:27.267: E/AndroidRuntime(2503): at java.lang.reflect.Method.invokeNative(Native Method)
04-27 14:19:27.267: E/AndroidRuntime(2503): at java.lang.reflect.Method.invoke(Method.java:511)
04-27 14:19:27.267: E/AndroidRuntime(2503): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
04-27 14:19:27.267: E/AndroidRuntime(2503): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
04-27 14:19:27.267: E/AndroidRuntime(2503): at dalvik.system.NativeStart.main(Native Method)
04-27 14:19:27.267: E/AndroidRuntime(2503): Caused by: java.lang.NullPointerException
04-27 14:19:27.267: E/AndroidRuntime(2503): at com.seapredictions.ShowData.onCreate(ShowData.java:33)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.Activity.performCreate(Activity.java:4465)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
04-27 14:19:27.267: E/AndroidRuntime(2503): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
04-27 14:19:27.267: E/AndroidRuntime(2503): ... 11 more
04-27 14:19:27.636: I/dalvikvm(2503): threadid=3: reacting to signal 3
04-27 14:19:27.676: I/dalvikvm(2503): Wrote stack traces to '/data/anr/traces.txt'
04-27 14:19:27.807: I/dalvikvm(2503): threadid=3: reacting to signal 3
04-27 14:19:27.827: I/dalvikvm(2503): Wrote stack traces to '/data/anr/traces.txt'
04-27 14:19:27.887: D/dalvikvm(2503): GC_CONCURRENT freed 230K, 4% free 9243K/9543K, paused 3ms+3ms
或者你可以这样做:
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);
TableRow row = new TableRow(this);
TextView t = new TextView(this);
t.setText(String.valueOf(day[i]));
row.addView(t);
table.addView(row,new TableLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
试试这个:
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);
TableRow row = new TableRow(this);
LinearLayout outerLayout = new LinearLayout(this);
LinearLayout.LayoutParams textLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
textLayoutParams.setMargins(100, 0, 0, 0);
TextView t = new TextView(this);
t.setText(String.valueOf(day[i]));
outerLayout.addView(t, textLayoutParams);
row.addView(outerLayout);
table.addView(row);
可能您在不同的XML中有重复的名为TableLayout1的元素?好吧,我使用了,下一步,删除XML文件的Tablelayout,并在相同的位置创建一个新的,具有另一个id,例如:android:id=@+id/tableMenu,以及您的 文件java是下一个: TableLayout myTable=TableLayout findViewByIdR.id.tableMenu
这是我的解决方案,你可以试试不,这不是问题所在。即使我把t.Settextlalala放进去,它也会崩溃。正如我所说,错误是最后一行。与矿井或V4l3ri4中的错误相同。当到达table.addView程序崩溃时,在日志中说NullPointerException清理项目并重新构建它,最后一行是NullPointerException。我测试了很多例子,在同一行中总是有问题。我看到了很多例子,所有的步骤都是一样的,我不知道我的电脑里发生了什么
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);
TableRow row = new TableRow(this);
TextView t = new TextView(this);
t.setText(String.valueOf(day[i]));
row.addView(t);
table.addView(row,new TableLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);
TableRow row = new TableRow(this);
LinearLayout outerLayout = new LinearLayout(this);
LinearLayout.LayoutParams textLayoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
textLayoutParams.setMargins(100, 0, 0, 0);
TextView t = new TextView(this);
t.setText(String.valueOf(day[i]));
outerLayout.addView(t, textLayoutParams);
row.addView(outerLayout);
table.addView(row);
TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);
TableRow tr1 = new TableRow(this);
tr1.setLayoutParams(new LayoutParams( LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
TextView textview = new TextView(this);
textview.setText("Hello world"); //or whatever you want
tr1.addView(textview);
table.addView(tr1, new TableLayout.LayoutParams(
LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT));