android實現簡單的購物車
阿新 • • 發佈:2019-01-16
一.佈局:
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