0

我想在一个表中动态地添加一行,只要这个函数是从不同的类中调用的。现在它使程序崩溃。我浏览了很多主题,但找不到任何东西。在TableLayout中动态添加行

public void newRow(String time, String cloc, String loc, String contact) { 
    TableLayout tl = (TableLayout) findViewById(R.id.table); 
    TableRow tr = new TableRow(this); 
    TextView t1 = new TextView(this); 
    TextView t2 = new TextView(this); 
    TextView t3 = new TextView(this); 
    TextView t4 = new TextView(this); 
    t1.setText(time); 
    t1.setText(cloc); 
    t1.setText(loc); 
    t1.setText(contact); 
    tr.addView(t1); 
    tr.addView(t2); 
    tr.addView(t3); 
    tr.addView(t4); 
    tl.addView(tr, TableLayout.LayoutParams.WRAP_CONTENT); 
} 

回答

0

不要在每次调用创建TableLayout的新实例

+0

那么我该如何在TableLayout中添加TableRow? –

+0

也将表格布局实例传递给方法。 – Mursaleen

+0

它仍然崩溃 –

0
  • 创建TableLayout的全局实例,以便它可以被访问的NEWROW ()方法。请记住,您只需创建一个TableLayout并重复向其添加新行。
  • 您正在t1实例上重复调用setText()方法。我不想 认为你打算这样做。
  • 发布崩溃日志,以便我可以进一步帮助您。