我正在尝试制作一个3列TableLayout
但我从未见过任何东西。这是我的java代码:
TableLayout tl = (TableLayout)findViewById(R.id.tableLayout1);
TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
TextView tv = new TextView(this);
tv.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tv.setText(data[0]);
tr.addView(tv);
TextView tv1 = new TextView(this);
tv1.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tv1.setText(data[1]);
tr.addView(tv1);
TextView tv2 = new TextView(this);
tv2.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tv2.setText(data[2]);
tr.addView(tv2);
/* Add row to TableLayout. */
tl.addView(tr,new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
这是我的XML文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/LinearLayout1" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="350dp"
android:layout_marginTop="10dp"
>
</TableLayout>
<Button
android:id="@+id/BorrarPedido"
android:layout_width="204dp"
android:layout_height="wrap_content"
android:text="Borrar Pedido"
android:layout_gravity="center" />
<Button
android:id="@+id/EnviarPedido"
android:layout_width="204dp"
android:layout_height="wrap_content"
android:text="Enviar Pedido"
android:layout_gravity="center" />
</LinearLayout>
我没有收到任何错误消息,我什么都没得到。问题是,除了Buttons
之外的2 TableLayout
,我看不到任何东西。知道为什么会这样吗?
答案 0 :(得分:3)
您的TextView
是TableRow
的孩子,因此您应为TableRow.LayoutParams
而不是简单的LayoutParams
设置ViewGroup
的实例(可能来自{{1}你目前使用的超级类:
//...
TextView tv = new TextView(this);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
tv.setText("text 1");
tr.addView(tv);
TextView tv1 = new TextView(this);
tv1.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
tv1.setText("text 2");
tr.addView(tv1);
TextView tv2 = new TextView(this);
tv2.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.FILL_PARENT,
TableRow.LayoutParams.WRAP_CONTENT));
tv2.setText("text 3");
tr.addView(tv2);
//...
答案 1 :(得分:0)
试试这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TableLayout
android:id="@+id/tableLayout1"
android:layout_width="fill_parent"
android:layout_height="350dp"
android:layout_marginTop="10dp" android:stretchColumns="*" >
</TableLayout>
<Button
android:id="@+id/BorrarPedido"
android:layout_width="204dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Borrar Pedido" />
<Button
android:id="@+id/EnviarPedido"
android:layout_width="204dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="Enviar Pedido" />
</LinearLayout>
TableLayout tblLayout = (TableLayout)findViewById(R.id.tableLayout1);
TableLayout.LayoutParams layoutParams = new TableLayout.LayoutParams(TableLayout.LayoutParams.WRAP_CONTENT, TableLayout.LayoutParams.WRAP_CONTENT);
TableRow row = new TableRow(this);
row.setBackgroundColor(Color.DKGRAY);
tblLayout.addView(row, layoutParams);
addToTableRow("Name", row, Color.WHITE);
addToTableRow("Age", row, Color.WHITE);
addToTableRow("Location", row, Color.WHITE);
}
private void addToTableRow(String str, TableRow row,int color)
{
TextView t = new TextView(this);
t.setTextColor(color);
t.setText(str);
row.addView(t);
}