Android将项目动态添加到TableLayout(购物车)

时间:2015-11-21 10:22:15

标签: android android-layout

每个人,实际上我想做的事情与图中显示的相似,Cart Checkout Screen
实际上这是我的结帐屏幕的布局,我想动态添加项目,包括' +'和' - '按钮听众,我已经完成了很多堆栈溢出的答案和博客,它们显示了如何动态地向TableLayout添加行,但它们都没有为我工作,我已经使用TableLayout实现了这个结帐屏幕,我发现这只是可以满足的布局我的要求,这是我的checkout_summary.xml布局。

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

<TextView
    android:id="@+id/selection"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Cart Summary"
    android:layout_gravity="center"
    android:gravity="center_vertical|center_horizontal"
    android:textStyle="bold"
    android:textSize="28dp"
    android:textAlignment="center"
    android:layout_marginTop="8dp"
    android:layout_marginBottom="8dp" />

<TableLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/ctbl"
    android:layout_gravity="center_horizontal">

    <TableRow
        android:gravity="center_vertical"
        >

        <TextView
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Item Name"
            android:id="@+id/textView"
            android:layout_weight="1"
            android:layout_column="1"
            android:layout_margin="10dp"
            android:textStyle="bold" />

        <TextView
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Quantity"
            android:layout_weight="1"
            android:id="@+id/textView3"
            android:layout_column="2"
            android:layout_margin="10dp"
            android:textStyle="bold" />

        <TextView
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Discount"
            android:id="@+id/textView4"
            android:layout_weight="1"
            android:layout_column="3"
            android:layout_margin="10dp"
            android:textStyle="bold" />

        <TextView
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Subtotal"
            android:id="@+id/textView5"
            android:layout_weight="1"
            android:layout_column="4"
            android:layout_margin="10dp"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:gravity="center_vertical"
       >

        <TextView
            android:text="Kuzhakkattai "
            android:id="@+id/textView1"
            android:layout_weight="1"
            android:layout_column="1"
            android:layout_margin="10dp" />

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:id="@+id/non"
            android:layout_weight="1"
            android:gravity="center_vertical|center|center_horizontal"
            android:background="@android:color/transparent">
            <Button
                android:id="@+id/minus"
                android:layout_width="35dp"
                android:layout_height="wrap_content"
                android:text="-"
                android:gravity="center_vertical|center|center_horizontal"
                android:textSize="30dp"
                android:textStyle="bold"
                android:background="@android:color/transparent"
                android:textColor="#ffff1220" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@+id/text"
                android:text="00"
                android:gravity="center_vertical|center|center_horizontal"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp" />

            <Button
                android:id="@+id/plus"
                android:layout_width="35dp"
                android:layout_height="wrap_content"
                android:text=" + "
                android:gravity="center_vertical|center|center_horizontal"
                android:textSize="30dp"
                android:textStyle="bold"
                android:background="@android:color/transparent"
                android:textColor="#090" />
        </LinearLayout>

        <TextView
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="5% "
            android:id="@+id/textView14"
            android:layout_weight="1"
            android:layout_column="3"
            android:layout_margin="10dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Rs. 1425.00 "
            android:id="@+id/textView15"
            android:layout_weight="1"
            android:layout_column="4"
            android:layout_margin="10dp" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center_vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Kuzhakkattai "
            android:id="@+id/textView11"
            android:layout_weight="1"
            android:layout_column="1"
            android:layout_margin="10dp" />

        <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="wrap_content"
            android:id="@+id/non2"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:gravity="center_vertical|center|center_horizontal"
            android:background="@android:color/transparent">
            <Button
                android:id="@+id/minus2"
                android:layout_width="35dp"
                android:layout_height="wrap_content"
                android:text="-"
                android:gravity="center_vertical|center|center_horizontal"
                android:textSize="30dp"
                android:textStyle="bold"
                android:background="@android:color/transparent"
                android:textColor="#ffff1220" />

            <TextView
                android:id="@+id/text2"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="00"
                android:gravity="center_vertical|center|center_horizontal"
                android:layout_marginLeft="10dp"
                android:layout_marginRight="10dp" />

            <Button
                android:id="@+id/plus2"
                android:layout_width="35dp"
                android:layout_height="wrap_content"
                android:text=" + "
                android:gravity="center_vertical|center|center_horizontal"
                android:textSize="30dp"
                android:textStyle="bold"
                android:background="@android:color/transparent"
                android:textColor="#090" />
        </LinearLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="5% "
            android:id="@+id/textView12"
            android:layout_weight="1"
            android:layout_column="3"
            android:layout_margin="10dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceSmall"
            android:text="Rs. 1425.00 "
            android:id="@+id/textView13"
            android:layout_weight="1"
            android:layout_column="4"
            android:layout_margin="10dp" />
    </TableRow>

</TableLayout>

<TextView
    android:id="@+id/subtotal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text=" Item Total :  Rs. 5015.00 "
    android:layout_gravity="center|right"
    android:gravity="right"
    android:textStyle="bold"
    android:textSize="20dp"
    android:textAlignment="center"
    android:layout_margin="5dp" />

<TextView
    android:id="@+id/total"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text=" Total :  Rs. 5015.00 "
    android:layout_gravity="center|right"
    android:gravity="right"
    android:textStyle="bold"
    android:textSize="24dp"
    android:textAlignment="center"
    android:textColor="#000000" />

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:id="@+id/ab"
    android:layout_height="wrap_content"
    android:gravity="center_vertical|center|center_horizontal"
    android:background="@android:color/transparent"
    android:layout_marginTop="15dp"
    android:layout_marginBottom="15dp">
    <Button
        android:id="@+id/alkarte"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/text"
        android:background="@drawable/button_rounded_corners"
        android:text="  Dismiss  "
        android:gravity="center_vertical|center|center_horizontal"
        android:textSize="20dp"
        android:textStyle="bold"
        android:layout_marginRight="10dp"
        android:textColor="#D9534F" />


    <Button
        android:id="@+id/Buffet"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/text"
        android:background="@drawable/button_rounded_corners"
        android:text=" Checkout "
        android:gravity="center_vertical|center|center_horizontal"
        android:textSize="20dp"
        android:textStyle="bold"
        android:layout_marginLeft="10dp" />
</LinearLayout>

所以,我只是想在这个列表中添加项目(TableLayout)以编程方式,通过保留xml文件中提到的所有布局属性,这是我尝试过的JAVA代码,

 final Dialog dialog = new Dialog(this);
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialog.setContentView(R.layout.checout_summary);
    dialog.setCanceledOnTouchOutside(false);
    TableLayout ctbl = (TableLayout) dialog.findViewById(R.id.ctbl);
    int count = 3;
 for (HashMap<String, String> hm: menuList) {
        //hotelList.add(hm);
        TableRow row= new TableRow(this);
        TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT,TableRow.LayoutParams.MATCH_PARENT);
        lp.gravity = Gravity.CENTER;
        row.setLayoutParams(lp);

        TextView item = new TextView(this);
        item.setText("item");
        LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT, 1f);
        params.setMargins(10, 10, 10, 10);
        item.setLayoutParams(params);
        row.addView(item);

        LinearLayout LL = new LinearLayout(this);
        LinearLayout.LayoutParams LLParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f);
        //LLParams.gravity = Gravity.CENTER;
        LL.setLayoutParams(LLParams);

        Button plus = new Button(this);
        LinearLayout.LayoutParams plul = new LinearLayout.LayoutParams(35, LinearLayout.LayoutParams.WRAP_CONTENT);
        //plul.gravity = Gravity.CENTER;
        plus.setText("+");
        plus.setTextSize(30);
        plus.setTypeface(null,Typeface.BOLD);
        plus.setTextColor(Color.parseColor("#ffff1220"));
        plus.setBackgroundColor(Color.TRANSPARENT);
        plus.setLayoutParams(plul);

        TextView qnty = new TextView(this);
        LinearLayout.LayoutParams qntyl = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
        //qntyl.gravity = Gravity.CENTER;
        qntyl.setMargins(10, 0, 10, 0);
        qnty.setLayoutParams(qntyl);

        Button minus = new Button(this);
        LinearLayout.LayoutParams minusl = new LinearLayout.LayoutParams(35, LinearLayout.LayoutParams.WRAP_CONTENT);
        //minusl.gravity = Gravity.CENTER;
        minus.setText("-");
        minus.setTextSize(30);
        minus.setTypeface(null,Typeface.BOLD);
        minus.setTextColor(Color.parseColor("#090"));
        minus.setBackgroundColor(Color.TRANSPARENT);
        minus.setLayoutParams(minusl);

        LL.addView(plus);LL.addView(qnty);LL.addView(minus);
        row.addView(LL);

        TextView disc = new TextView(this);
        disc.setText("4"+" %");
        LinearLayout.LayoutParams discl = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f);
        discl.setMargins(10, 10, 10, 10);
        disc.setLayoutParams(discl);
        row.addView(disc);

        TextView total = new TextView(this);
        total.setText("Rs. "+"1502");
        LinearLayout.LayoutParams totall = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT,1f);
        totall.setMargins(10, 10, 10, 10);
        total.setLayoutParams(totall);
        row.addView(total);

        ctbl.addView(row,count);
        count++;
    }

但是,这段代码不断崩溃应用程序,因为我没有在模拟器中运行它,所以我没有这个的logcat!

非常感谢任何帮助。

感谢阅读!

0 个答案:

没有答案