我想动态创建表格布局!帮助我

时间:2011-11-24 11:05:36

标签: android android-layout android-widget

我创建了一个名为table的表格布局,我正在尝试添加表格引用ID(R.id.table)

TableLayout table = (TableLayout) findViewById(R.id.table);

使用以下内容并按表格填充文本视图

当我执行此操作时应用程序崩溃..我调试并检查了代码 小心地看到 R.id.table值返回null 但是没有编译器错误

这是我的table.xml,它是一个布局文件

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scrol"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

<LinearLayout
    android:id="@+id/dummy"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <TableLayout
        android:id="@+id/table"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content">

        <TableRow
            android:id="@+id/tablerow"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" >


        </TableRow>
    </TableLayout>
</LinearLayout>

我的方法是对还是错。我是否必须引用Table表的Row id?有没有办法创建动态表格布局?

我在谷歌上搜索这个但是我不喜欢任何合适的例子......有人可以帮助我吗?

提前致谢

3 个答案:

答案 0 :(得分:1)

这可能对你有用

在您创建的first.xml中

<TableLayout
       android:id="@+id/TableLayout01"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent">
</TableLayout>

在second.xml中

<?xml version="1.0" encoding="utf-8"?>

<TableRow xmlns:android="http://schemas.android.com/apk/res/android">

    <ImageView android:id="@+id/spinnerEntryContactPhoto" android:layout_gravity="center_vertical" />
    <ImageView android:id="@+id/imageView2"
            android:layout_toRightOf="@+id/spinnerEntryContactPhoto" android:layout_width="wrap_content"
            android:layout_centerVertical="true"
            android:layout_height="wrap_content" android:background="@drawable/dd"></ImageView>
    <TextView android:id="@+id/spinnerEntryContactName" android:layout_gravity="center_vertical"
    android:singleLine="true" android:layout_marginRight="10dip" />
    <TextView android:id="@+id/spinnerEntryContactName1" android:layout_gravity="center_vertical" />

</TableRow>

在你的班级

TableLayout table = (TableLayout) findViewById(R.id.TableLayout01);
LayoutInflater inflater = getLayoutInflater();
TableRow row = (TableRow)inflater.inflate(R.layout.tablerow, table, false);
table.addView(row);

答案 1 :(得分:0)

您的标题声明您正在动态添加表格,但您的代码显示您正在尝试引用已存在的表格?

如果当前显示的布局不包含该表,则它将为null。在这种情况下,您应该引用该布局,然后调用findViewById,例如theLayoutWhichContainsTheView.findViewById(...)

如果您真的想要创建一个动态TableLayout,您想要使用此代码:

TableLayout table = new TableLayout(this);

然后,您需要向TableRow添加TableLayout,然后将Views添加到TableRow

答案 2 :(得分:0)

在您的Activity等中,您设置了ContentView。它应该在onCreate方法中设置,如下所示。

protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.callaction);

  TableLayout table = (TableLayout) findViewById(R.id.table);}

请做一个干净的&amp;重建你的项目,然后它将重新生成R.java文件(也就是gen文件夹)。