0

今天早上我花了很多钱试图学习如何为同一行的活动多次充气。我创建了一个名为 row per person 的 xml 文件。

<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >

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

    <EditText
        android:id="@+id/enterName"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10"
        android:inputType="textPersonName" >

        <requestFocus />
    </EditText>

    <SeekBar
        android:id="@+id/seekBar1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="2" />

    <TextView
        android:id="@+id/tipPerPerson"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="$      " />
</TableRow>

它是我的活动 BILL_ENTRY_SCREEN,我输入了以下代码。

        rowPerPerson = (TableRow) findViewById(R.id.divideTips);

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

    for(int i = 1; i <4; i++) {
        LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflater.inflate(R.layout.row_per_person, table);
    }

然而,它只显示一次,而不是显示 4 次的行。我究竟做错了什么。

4

2 回答 2

1

对于每个i,您必须为TableRowView 创建一个新实例,然后将其添加到TableLayout.

所以你的代码应该是这样的:

for(int i = 1; i <=4; i++) {
     row = new TableRow(this);
     LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
     inflater.inflate(R.layout.row_per_person, table); 
     row.addView(inflater);     // add view to row
     table.addView(row);  // add to table
 }
于 2013-09-29T16:45:28.393 回答
0

这是你的答案:使用视图多次膨胀

于 2013-09-29T16:46:40.290 回答