我最近开始玩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对象。但是,不会渲染添加的行。
答案 0 :(得分:2)
在这里找到答案: Dynamically add TableRow to TableLayout
我在Eclipse中添加了错误的导入。将其更改为正确的,如上面的问题所述,由问题
修复