动态添加的行不可见

时间:2010-07-08 09:59:16

标签: android

我最近开始玩Android。我试图实现的第一件事就是创建一个动态的TableLayout。在网上搜索,我在http://en.androidwiki.com/wiki/Dynamically_adding_rows_to_TableLayout找到了一些示例代码,我将其复制到我的活动中。

所以我的活动现在看起来像这样:

public class FooActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.foo);

      /* Find Tablelayout defined in main.xml */
      TableLayout tl = (TableLayout)findViewById(R.id.myTableLayout);

      for(int i= 0; i < 9; i++){

           /* Create a new row to be added. */
           TableRow tr = new TableRow(this);
           tr.setLayoutParams(new TableRow.LayoutParams(
                          LayoutParams.FILL_PARENT,
                          LayoutParams.WRAP_CONTENT));
           tr.setBackgroundColor(Color.MAGENTA);

                /* 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));
    }
  }

}

我在layouts文件夹中的foo.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>

当我现在在模拟器中启动我的应用程序时,动态添加的行都不可见。我只看到foo.xml文件中定义的静态按钮。使用附加的调试器,我已经能够看到我的代码被执行并且行被添加到tablelayout对象。但是,不会渲染添加的行。

1 个答案:

答案 0 :(得分:2)

在这里找到答案: Dynamically add TableRow to TableLayout

我在Eclipse中添加了错误的导入。将其更改为正确的,如上面的问题所述,由问题

修复