【问题标题】:Android dynamic linear layout containing edit box and spinner包含编辑框和微调器的Android动态线性布局
【发布时间】:2013-03-04 18:54:49
【问题描述】:

我有以下布局,即 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>

【问题讨论】:

    标签: android layout spinner


    【解决方案1】:

    试试这个,把那个 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");
    

    【讨论】:

    • 感谢您的回复。使用上述方法,屏幕上看不到线性布局。我尝试了 row11.setVisibility(View.VISIBLE);也。
    猜你喜欢
    • 2012-01-25
    • 2017-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-20
    • 2011-05-02
    相关资源
    最近更新 更多