动态生成视图

时间:2014-11-03 19:25:21

标签: android xml android-layout android-edittext dynamically-generated

我的屏幕上有一些静态和一些动态视图要创建。 我希望创建无限数量的视图,我认为动态是前进的方向 enter image description here

现在我需要的是创建带有图像按钮的顶级列,带有clientname的edittext和带有现金的xml(这是我当前的布局)现在我想要的用户点击购物车图标视图产品名称,数量和价格动态生成,然后底部视图也通过xml生成

像这样

enter image description here

正如您所看到的那样,有两排产品,数量和价格。目前这是通过xml完成​​的,someboy可以帮助我如何在现有的xml布局之间生成和排列数量,价格和产品名称的行?

注意:主要布局是相对布局,包含要动态生成的行的布局是

                 <LinearLayout
            android:id="@+id/laygroup0"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" 
            android:layout_below="@+id/lvpaymode"
            android:gravity="center"
            android:orientation="vertical" >

            <AutoCompleteTextView
                android:id="@+id/autoproduct0"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:layout_margin="5dp"
                android:drawableLeft="@drawable/ic_shopping_cart_black_24dp"
                android:ems="10"
                android:hint="@string/strproductname"
                android:padding="10dp"
                android:singleLine="true" />

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:orientation="horizontal" >

                <EditText
                    android:id="@+id/autoquantity0"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:drawableLeft="@drawable/ic_local_mall_black_24dp"
                    android:ems="10"
                    android:hint="@string/strquantity"
                    android:inputType="numberDecimal"
                    android:padding="10dp"
                    android:singleLine="true" >
                </EditText>

                <EditText
                    android:id="@+id/autoprice0"
                    android:layout_width="0dp"
                    android:layout_height="wrap_content"
                    android:layout_margin="5dp"
                    android:layout_weight="1"
                    android:drawableLeft="@drawable/ic_attach_money_black_24dp"
                    android:ems="10"
                    android:hint="@string/strprice"
                    android:inputType="numberDecimal"
                    android:padding="10dp"
                    android:singleLine="true" >
                </EditText>
            </LinearLayout>
        </LinearLayout>

1 个答案:

答案 0 :(得分:0)

我无法提供完整的代码bc我正在通过手机写字,但我可以给你更多指示。 在主布局中的xml中创建父布局。如果它是一个LinearLayout(任何其他布局,它将更难处理,更多的关注和更多的代码)将更容易。 然后使用findViewById在java代码中引用它的父类: LinearLayout parent = findViewById(R.layout ....); 您将使用父级添加子视图。

接下来设置一个按钮,其中包含onClick事件。在onClick事件中,您将为子布局充气:View child = LayoutInflater.from(context).inflate(R.layout.childxml);

接下来使用TextView tv = child.findViewById(...查找其中包含的所有视图等。如果您有按钮,请在此处设置其他按钮事件。 最后,您可以将子项添加到父项:parent.addView(child);

如果父级的线性布局的方向设置为垂直,则所有视图都会很好地排列在另一个之下。 如果你添加了很多视图,你冒险扩展的风险超过手机的屏幕允许它,它将无法滚动。您可以通过在xml中使用ScrollView包装父线性布局来克服此问题。现在它会很好地工作。 希望它有所帮助。