java.lang.NullPointerException:尝试调用虚拟方法';android.view.view android.widget.TableRow.getChildAt(int)

java.lang.NullPointerException:尝试调用虚拟方法';android.view.view android.widget.TableRow.getChildAt(int),android,tablerow,Android,Tablerow,您好,对不起,我的英语水平=) 我正在Android Studio中编写一个小计算程序,遇到了一个问题 我在TableLayout中动态创建了TableRow,如下所示: TableLayout table2 = (TableLayout) findViewById(R.id.table2); TableRow.LayoutParams rowParams = new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PAREN

您好,对不起,我的英语水平=)

我正在Android Studio中编写一个小计算程序,遇到了一个问题

我在TableLayout中动态创建了TableRow,如下所示:

    TableLayout table2 = (TableLayout) findViewById(R.id.table2);
    TableRow.LayoutParams rowParams = new TableRow.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ActionBar.LayoutParams.WRAP_CONTENT, Gravity.CENTER_HORIZONTAL);

    TableRow row = new TableRow(this);
    row.setLayoutParams(rowParams);

    row.addView(floor2);
    row.addView(ps2table);
    row.addView(gsatable);
    row.addView(vitable);
    table2.addView(row);
其中floor2、ps2table、gsatable和vitable是按下按钮后计算的文本视图

创建表后,我尝试使用其中一个数字(TableLayout的最后一行和位于2位置的子项):

我的问题是,当我尝试从此
TableLayout
的任何TableRow中获取一个或另一个数字(double)的值时,出现以下错误:

java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“android.view.view android.widget.TableRow.getChildAt(int)

这是寻找我,因为我没有一个地方,我提到的数字,但它在那里。我将在下面的链接中添加一张带有注释和所有代码的图片

图片:

我遇到错误的方法的代码:

谢谢大家!

试试看:

int gsn_count = table2.getChildCount();
TableRow gsnRow = (TableRow) table2.getChildAt(gsn_count -1);
getChildAt()获取一个索引(从0开始),getChildCount()返回子计数


因此,如果您有2项,则最大索引为1,计数为2。

尝试调试代码,以便下次指定问题。我想你自己可以很容易地找到这个异常的原因它工作得很好!非常感谢!=)
int gsn_count = table2.getChildCount();
TableRow gsnRow = (TableRow) table2.getChildAt(gsn_count -1);