1. 程式人生 > >android實現簡單的購物車

android實現簡單的購物車

一.佈局:

item_shopcart_group.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/white"
    android:orientation="vertical" >
<RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@android:color/white" > <CheckBox android:id="@+id/determine_chekbox" android:layout_width="wrap_content" android:layout_height
="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_marginRight="4dp" android:button="@drawable/check_box_bg" android:checkMark="?android:attr/listChoiceIndicatorMultiple" android:gravity
="center" android:minHeight="38dp" android:minWidth="32dp" android:textAppearance="?android:attr/textAppearanceLarge" android:visibility="visible" />
<TextView android:id="@+id/tv_source_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginBottom="10dp" android:layout_marginTop="10dp" android:layout_toRightOf="@id/determine_chekbox" android:background="@android:color/white" android:drawableLeft="@mipmap/shop_ico" android:drawablePadding="10dp" android:drawableRight="@mipmap/s_jr_ico" android:text="第八號當鋪" android:textColor="@color/grey_color2" android:textSize="@dimen/txt_14" /> <Button android:id="@+id/tv_store_edtor" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_centerVertical="true" android:layout_marginRight="10dp" android:background="@null" android:text="編輯"/> </RelativeLayout> </LinearLayout>

item_shopcart_product.xml

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

    <View
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="#CCCCCC" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/page_backgroup"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/check_box"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_vertical"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="4dp"
            android:button="@drawable/check_box_bg"
            android:checkMark="?android:attr/listChoiceIndicatorMultiple"
            android:gravity="center"
            android:minHeight="64dp"
            android:minWidth="32dp"
            android:textAppearance="?android:attr/textAppearanceLarge"
            android:visibility="visible" />

        <ImageView
            android:id="@+id/iv_adapter_list_pic"
            android:layout_width="85dp"
            android:layout_height="85dp"
            android:layout_marginBottom="15dp"
            android:layout_marginTop="13dp"
            android:scaleType="centerCrop"
            android:src="@drawable/goods1" />

        <RelativeLayout
            android:id="@+id/rl_no_edtor"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:layout_marginLeft="13dp"
            >

            <TextView
                android:id="@+id/tv_intro"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginRight="10dp"
                android:layout_marginTop="20dp"
                android:ellipsize="end"
                android:maxLines="2"
                android:text="第八號當鋪美女一枚"
                android:textColor="@color/grey_color1"
                android:textSize="@dimen/txt_14" />
            <TextView
                android:id="@+id/tv_color_size"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="顏色:黑色;尺碼:29"
                android:textColor="@color/gray"
                android:layout_centerVertical="true"
                android:layout_alignParentLeft="true"
                android:layout_alignParentStart="true" />
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:layout_alignParentBottom="true"
                android:layout_alignParentLeft="true"
               android:layout_marginBottom="20dp"
                android:layout_alignParentStart="true">

                <TextView
                    android:id="@+id/tv_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:singleLine="true"
                    android:text="¥ 308.00"
                    android:textColor="@color/orange_color"
                    android:textSize="@dimen/txt_14"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/tv_discount_price"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginLeft="10dp"
                    android:layout_toRightOf="@+id/tv_price"
                    android:text=""
                    android:textColor="@color/gray"
                    android:textSize="@dimen/txt_10"
                    />
                <TextView
                    android:id="@+id/tv_buy_num"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_centerVertical="true"
                    android:layout_marginRight="20dp"
                    android:layout_alignParentRight="true"
                    android:text="X 1"
                    android:textColor="@color/gray"
                    android:textSize="@dimen/txt_10"
                    />
            </RelativeLayout>
        </RelativeLayout>
        <LinearLayout
            android:id="@+id/ll_edtor"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_marginLeft="13dp"
            android:visibility="gone"
            android:orientation="horizontal">
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:orientation="vertical">
                <LinearLayout
                    android:id="@+id/ll_change_num"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:layout_centerVertical="true"
                    android:layout_marginTop="10dp"
                    android:orientation="horizontal" >

                    <TextView
                        android:id="@+id/tv_reduce"
                        android:layout_width="35dp"
                        android:layout_height="35dp"
                        android:background="@drawable/text_angle_gray"
                        android:gravity="center"
                        android:text="一"
                        android:textColor="@color/grey_color1"
                        android:textSize="@dimen/txt_12" />

                    <TextView
                        android:id="@+id/tv_num"
                        android:layout_width="35dp"
                        android:layout_height="35dp"
                        android:background="@drawable/text_angle"
                        android:gravity="center"
                        android:singleLine="true"
                        android:text="1"
                        android:textColor="@color/grey_color1"
                        android:textSize="@dimen/txt_12" />

                    <TextView
                        android:id="@+id/tv_add"
                        android:layout_width="35dp"
                        android:layout_height="35dp"
                        android:background="@drawable/text_angle_right"
                        android:gravity="center"
                        android:text="+"
                        android:textColor="@color/grey_color1"
                        android:textSize="@dimen/txt_12" />
                </LinearLayout>
                <TextView
                    android:id="@+id/tv_colorsize"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="10dp"
                    android:text="顏色:黑色;尺碼:29"
                    android:layout_gravity="left"
                    android:textColor="@color/gray"/>
            </LinearLayout>

           <TextView
               android:id="@+id/tv_goods_delete"
               android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:layout_weight="3"
               android:text="刪除"
               android:background="@color/orange"
               android:gravity="center"
               android:layout_gravity="center"
               android:textColor="@color/white"/>
        </LinearLayout>
    </LinearLayout>

</LinearLayout>

在fragment中的佈局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/top_bar"
        android:layout_width="match_parent"
        android:layout_height="48dp"
        android:background="@drawable/topbar_background"
        android:orientation="vertical" >

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:background="@android:color/transparent"
            android:orientation="vertical" >

            <ImageView
                android:id="@+id/back"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"
                android:layout_gravity="center_vertical"
                android:padding="12dp"
                android:src="@mipmap/topbar_up" />

            <TextView
                android:id="@+id/title"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:minHeight="48dp"
                android:text="購物車"
                android:textColor="#1a1a1a"
                android:textSize="16sp" />

            <TextView
                android:id="@+id/subtitle"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"
                android:layout_marginRight="40dp"
                android:gravity="center"
                android:minHeight="48dp"
                android:text="編輯"
                android:textColor="#1a1a1a"
                android:textSize="14sp"
                android:visibility="visible" />
        </RelativeLayout>
    </LinearLayout>

    <ExpandableListView
        android:id="@+id/exListView"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:childIndicator="@null"
        android:groupIndicator="@null" >
    </ExpandableListView>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:gravity="center_vertical"
        android:orientation="horizontal" >

        <CheckBox
            android:id="@+id/all_chekbox"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:layout_gravity="center_vertical"
            android:layout_marginRight="4dp"
            android:button="@drawable/check_box_bg"
            android:checkMark="?android:attr/listChoiceIndicatorMultiple"
            android:gravity="center"
            android:minHeight="64dp"
            android:layout_marginLeft="10dp"
            android:text="全選"
            android:textAppearance="?android:attr/textAppearanceLarge"
            />
        <LinearLayout
            android:id="@+id/ll_info"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_weight="4"
            >
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical"
                android:layout_marginRight="20dp"
                android:layout_weight="1"
                >
                <LinearLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal"
                    android:gravity="right"
                    >
                    <TextView
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_marginLeft="5dp"
                        android:text="合計:"
                        android:textSize="18sp"
                        android:textStyle="bold" />

                    <TextView
                        android:id="@+id/tv_total_price"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="¥0.00"
                        android:textColor="@color/orangered"
                        android:textSize="16sp"
                        android:textStyle="bold" />
                </LinearLayout>
                <TextView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:text="不含運費"
                    android:gravity="right"
                    android:textColor="@color/gray"
                    android:textSize="16sp"
                    android:textStyle="bold" />
            </LinearLayout>
            <TextView
                android:id="@+id/tv_go_to_pay"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="3"
                android:background="@color/orange"
                android:clickable="true"
                android:gravity="center"
                android:text="結算(0)"
                android:textColor="#FAFAFA"

                />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/ll_shar"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="4"
            android:orientation="horizontal"
            android:visibility="gone"
            >
            <TextView
                android:id="@+id/tv_share"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:gravity="center"
                android:layout_weight="1"
                android:layout_marginLeft="5dp"
                android:text="分享寶貝"
                android:textColor="@color/white"
                android:background="@color/orange"
                android:textSize="16sp"
                android:layout_marginRight="5dp"
                android:textStyle="bold" />

            <TextView
                android:id="@+id/tv_save"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:gravity="center"
                android:text="移到收藏夾"
                android:background="@color/orange"
                android:textColor="@color/white"
                android:layout_marginRight="5dp"
                android:textSize="16sp"
                android:textStyle="bold" />
            <TextView
                android:id="@+id/tv_delete"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:layout_weight="1"
                android:background="@color/crimson"
                android:clickable="true"
                android:gravity="center"
                android:text="刪除"
                android:textColor="#FAFAFA"
                />
        </LinearLayout>

    </LinearLayout>

</LinearLayout>

二.資原始檔
colors.xml(新增到自己的colors.xml)

<!-- 列表分割線   色值#999999 -->
    <color name="list_divider">#999999</color>
    <!-- 選中態色塊   色值#D7D7D7 -->
    <color name="list_item_pressed">#D7D7D7</color>
    <color name="white">#ffffff</color>
    <!-- 白色 -->
    <color name="ivory">#fffff0</color>
    <!-- 象牙色 -->
    <color name="lightyellow">#ffffe0</color>
    <color name="capture_text_cover_bg">#3060a4e3</color>

    <!-- 亮黃色 -->
    <color name="yellow">#ffff00</color>
    <!-- 黃色 -->
    <color name="snow">#fffafa</color>
    <!-- 雪白色 -->
    <color name="floralwhite">#fffaf0</color>
    <!-- 花白色 -->
    <color name="lemonchiffon">#fffacd</color>
    <!-- 檸檬綢色 -->
    <color name="cornsilk">#fff8dc</color>
    <!-- 米綢色 -->
    <color name="seaShell">#fff5ee</color>
    <!-- 海貝色 -->
    <color name="lavenderblush">#fff0f5</color>
    <!-- 淡紫紅 -->
    <color name="papayawhip">#ffefd5</color>
    <!-- 番木色 -->
    <color name="blanchedalmond">#ffebcd</color>
    <!-- 白杏色 -->
    <color name="mistyrose">#ffe4e1</color>
    <!-- 淺玫瑰色 -->
    <color name="bisque">#ffe4c4</color>
    <!-- 桔黃色 -->
    <color name="moccasin">#ffe4b5</color>
    <!-- 鹿皮色 -->
    <color name="navajowhite">#ffdead</color>
    <!-- 納瓦白 -->
    <color name="peachpuff">#ffdab9</color>
    <!-- 桃色 -->
    <color name="gold">#ffd700</color>
    <!-- 金色 -->
    <color name="pink">#ffc0cb</color>
    <!-- 粉紅色 -->
    <color name="lightpink">#ffb6c1</color>
    <!-- 亮粉紅色 -->
    <color name="orange">#fd7903</color>
    <!-- 橙色 -->
    <color name="lightsalmon">#ffa07a</color>
    <!-- 亮肉色 -->
    <color name="darkorange">#ff8c00</color>
    <!-- 暗桔黃色 -->
    <color name="coral">#ff7f50</color>
    <!-- 珊瑚色 -->
    <color name="hotpink">#ff69b4</color>
    <!-- 熱粉紅色 -->
    <color name="tomato">#ff6347</color>
    <!-- 西紅柿色 -->
    <color name="orangered">#ff4500</color>
    <!-- 紅橙色 -->
    <color name="deeppink">#ff1493</color>
    <!-- 深粉紅色 -->
    <color name="fuchsia">#ff00ff</color>
    <!-- 紫紅色 -->
    <color name="magenta">#ff00ff</color>
    <!-- 紅紫色 -->
    <color name="red">#ff0000</color>
    <!-- 紅色 -->
    <color name="oldlace">#fdf5e6</color>
    <!-- 老花色 -->
    <color name="lightgoldenrodyellow">#fafad2</color>
    <!-- 亮金黃色 -->
    <color name="linen">#faf0e6</color>
    <!-- 亞麻色 -->
    <color name="antiquewhite">#faebd7</color>
    <!-- 古董白 -->
    <color name="salmon">#fa8072</color>
    <!-- 鮮肉色 -->
    <color name="ghostwhite">#f8f8ff</color>
    <!-- 幽靈白 -->
    <color name="mintcream">#f5fffa</color>
    <!-- 薄荷色 -->
    <color name="whitesmoke">#f5f5f5</color>
    <!-- 煙白色 -->
    <color name="beige">#f5f5dc</color>
    <!-- 米色 -->
    <color name="wheat">#f5deb3</color>
    <!-- 淺黃色 -->
    <color name="sandybrown">#f4a460</color>
    <!-- 沙褐色 -->
    <color name="azure">#f0ffff</color>
    <!-- 天藍色 -->
    <color name="honeydew">#f0fff0</color>
    <!-- 蜜色 -->
    <color name="aliceblue">#f0f8ff</color>
    <!-- 艾利斯蘭 -->
    <color name="khaki">#f0e68c</color>
    <!-- 黃褐色 -->
    <color name="lightcoral">#f08080</color>
    <!-- 亮珊瑚色 -->
    <color name="palegoldenrod">#eee8aa</color>
    <!-- 蒼麒麟色 -->
    <color name="violet">#ee82ee</color>
    <!-- 紫羅蘭色 -->
    <color name="darksalmon">#e9967a</color>
    <!-- 暗肉色 -->
    <color name="lavender">#e6e6fa</color>
    <!-- 淡紫色 -->
    <color name="lightcyan">#e0ffff</color>
    <!-- 亮青色 -->
    <color name="burlywood">#deb887</color>
    <!-- 實木色 -->
    <color name="plum">#dda0dd</color>
    <!-- 洋李色 -->
    <color name="gainsboro">#dcdcdc</color>
    <!-- 淡灰色 -->
    <color name="crimson">#dc143c</color>
    <!-- 暗深紅色 -->
    <color name="palevioletred">#db7093</color>
    <!-- 蒼紫羅蘭色 -->
    <color name="goldenrod">#daa520</color>
    <!-- 金麒麟色 -->
    <color name="orchid">#da70d6</color>
    <!-- 淡紫色 -->
    <color name="thistle">#d8bfd8</color>
    <!-- 薊色 -->
    <color name="lightgray">#d3d3d3</color>
    <!-- 亮灰色 -->
    <color name="lightgrey">#d3d3d3</color>
    <!-- 亮灰色 -->
    <color name="tan">#d2b48c