我创建了一个名为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?有没有办法创建动态表格布局?
我在谷歌上搜索这个但是我不喜欢任何合适的例子......有人可以帮助我吗?
提前致谢
答案 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文件夹)。