在tablerow中添加相同的东西会导致fc

时间:2012-04-09 16:00:36

标签: java android tablelayout

我正在完成此页面所说的内容:http://en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayout

主要代码:

this.setContentView(R.layout.main);

      /* Find Tablelayout defined in main.xml */
      TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);
           /* Create a new row to be added. */
           TableRow tr = new TableRow(this);
           tr.setLayoutParams(new LayoutParams(
                          LayoutParams.FILL_PARENT,
                          LayoutParams.WRAP_CONTENT));
                /* Create a Button to be the row-content. */
                Button b = new Button(this);
                b.setText("Dynamic Button");
                b.setLayoutParams(new LayoutParams(
                          LayoutParams.FILL_PARENT,
                          LayoutParams.WRAP_CONTENT));
                /* Add Button to row. */
                tr.addView(b);
      /* Add row to TableLayout. */
      tl.addView(tr,new TableLayout.LayoutParams(
                LayoutParams.FILL_PARENT,
                LayoutParams.WRAP_CONTENT)); <code>

xml:

<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/myTableLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TableRow android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:text="Static Button"/> </TableRow> </TableLayout>

但是当我复制该行时 tr.addView(B);

它给了我fc。 知道错误在哪里?

1 个答案:

答案 0 :(得分:0)

那是因为你要添加相同的按钮。试试:

            .....
            /* Create a Button to be the row-content. */
            Button b = new Button(this);
            b.setText("Dynamic Button");
            b.setLayoutParams(new LayoutParams(
                      LayoutParams.WRAP_CONTENT,
                      LayoutParams.WRAP_CONTENT));
            /* Add Button to row. */
            tr.addView(b);

            b = new Button(this);
            b.setText("Another Dynamic Button");
            b.setLayoutParams(new LayoutParams(
                      LayoutParams.WRAP_CONTENT,
                      LayoutParams.WRAP_CONTENT));
            /* Add Button to row. */
            tr.addView(b);   

            ......