0

我有以下布局,即 1 个微调器和一个包含一些编辑框和微调器的线性布局。此布局映射/表示一个对象(我们称之为 X)。主微调器将有 n 个条目,每个条目映射到布局对象 (X)。所以,我需要有 n 个布局,我希望允许用户一次只填充 1 个对象,所以,我将只保留 1 个布局可见。为了解决这个问题,一种方法是在 .xml 中有 n 个布局,并在监听器的 onitemselected 中播放可见性。有没有其他更好/优化的方法来解决这个问题。如果我最初不知道 n 的值,我怎样才能使这个动态呢?

`<Spinner
    android:id="@+id/linesspinner"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />


<LinearLayout
    android:id="@+id/linView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/linename1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/linecffiltext" />

    <Spinner
        android:id="@+id/trospinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/Tro_arrays"
        android:prompt="@string/linetrotext" />

    <EditText
        android:id="@+id/line1troval"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10" >
    </EditText>

    <Spinner
        android:id="@+id/cfspinner1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/cf_arrays"
        android:prompt="@string/linecffiltext" />

    <EditText
        android:id="@+id/line1cfval"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10" >
    </EditText>
</LinearLayout>
4

1 回答 1

0

试试这个,把那个 LinearLayout 放在另一个 xml 中,然后在循环中多次调用那个 xml。示例 xml,名称 attrib_row.xml

<?xml version="1.0" encoding="utf-8"?>
<Linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >

<TextView
    android:id="@+id/lable"
    android:layout_width="150dip"
    android:layout_column="0"
    android:padding="3dip"
    android:textColor="#000033" />
</Linearlayout>

在循环中调用它的代码

 Linearlayout row11 = (Linearlayout) LayoutInflater.from(this).inflate(
                R.layout.attrib_row, null);
        ((TextView) row11.findViewById(R.id.lable)).setText("example");
于 2013-03-04T10:47:38.417 回答