将内容dynamic添加到线性布局?

例如,如果我已经定义了一个垂直方向的根线性布局:

main.xml

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_root" android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="vertical" <!-- I would like to add content here dynamically.--> </LinearLayout> 

在根线性布局里面,我想添加多个子线性布局 ,每个子线性布局方向都是水平的 。 有了这些,我最终可以得到一个类似输出的表格。

例如root与布局如:

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/my_root" android:layout_height="wrap_content" android:layout_width="fill_parent" android:orientation="vertical" <!-- 1st child (1st row)--> <LinearLayout ... android:orientation="horizontal"> <TextView .../> <TextView .../> <TextView .../> </LinearLayout> <!-- 2nd child (2nd row)--> ... </LinearLayout> 

由于子线性布局的数量及其内容是相当dynamic的,我决定以编程方式将内容添加到根线性布局。

第二个布局如何以编程的方式添加到第一个布局,这也可以设置每个孩子的所有布局属性,并添加更多的孩子内的其他元素?

在你的onCreate() ,写下面的内容

 LinearLayout myRoot = (LinearLayout) findViewById(R.id.my_root); LinearLayout a = new LinearLayout(this); a.setOrientation(LinearLayout.HORIZONTAL); a.addView(view1); a.addView(view2); a.addView(view3); myRoot.addView(a); 

view1view2view3是你的TextView 。 他们很容易创build编程。

 LinearLayout layout = (LinearLayout)findViewById(R.id.layout); View child = getLayoutInflater().inflate(R.layout.child, null); layout.addView(child); 

您可以像这样实现LinearLayout级联:

 LinearLayout root = (LinearLayout) findViewById(R.id.my_root); LinearLayout llay1 = new LinearLayout(this); root.addView(llay1); LinearLayout llay2 = new LinearLayout(this); llay1.addView(llay2);