包含编辑框和微调框的Android动态线性布局

时间:2013-03-04 10:23:28

标签: android layout spinner

我有下面的布局,即1个微调器和一个包含一些编辑框和微调器的线性布局。这个布局映射/表示一个对象(让我们称之为X)。 主旋转器将具有n个条目,并且每个条目映射到布局对象(X)。因此,总之,我将需要具有n个布局 我想允许用户一次只填充一个对象,因此,我只保留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>

1 个答案:

答案 0 :(得分:0)

尝试这个,将LinearLayout放在另一个xml中,并在内部循环中多次调用该xml。 sample xml,name 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");