实例介绍
【实例简介】
【实例截图】
【核心代码】
package com.jock.tbshopcar; import java.util.ArrayList; import java.util.List; import org.json.JSONObject; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.Window; import android.widget.ExpandableListView; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.jock.tbshopcar.adapter.MyExpandableListAdapter; import com.jock.tbshopcar.dao.DBHelper; import com.jock.tbshopcar.entity.ShoppingCartBean; import com.jock.tbshopcar.listener.OnShoppingCartChangeListener; import com.jock.tbshopcar.listener.ResponseCallBack; import com.jock.tbshopcar.listener.ShoppingCartBiz; import com.jock.tbshopcar.listener.ShoppingCartHttpBiz; import com.jock.tbshopcar.utils.ToastHelper; public class ShoppingCartActivity extends Activity { ExpandableListView expandableListView; ImageView ivSelectAll; TextView btnSettle; TextView tvCountMoney; TextView tvTitle; RelativeLayout rlShoppingCartEmpty; RelativeLayout rlBottomBar; private List<ShoppingCartBean> mListGoods = new ArrayList<ShoppingCartBean>(); private MyExpandableListAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.requestWindowFeature(Window.FEATURE_NO_TITLE);//去掉标题栏 setContentView(R.layout.activity_shopping_cart); DBHelper.init(getApplicationContext()); ToastHelper.getInstance().init(getApplicationContext()); initView(); setAdapter(); requestShoppingCartList(); } private void setAdapter() { adapter = new MyExpandableListAdapter(this); expandableListView.setAdapter(adapter); adapter.setOnShoppingCartChangeListener(new OnShoppingCartChangeListener() { public void onDataChange(String selectCount, String selectMoney) { int goodsCount = ShoppingCartBiz.getGoodsCount(); // if (!isNetworkOk) {//网络状态判断暂时不显示 // } if (goodsCount == 0) { showEmpty(true); } else { showEmpty(false);//其实不需要做这个判断,因为没有商品的时候,必须退出去添加商品; } String countMoney = String.format(getResources().getString(R.string.count_money), selectMoney); String countGoods = String.format(getResources().getString(R.string.count_goods), selectCount); String title = String.format(getResources().getString(R.string.shop_title), goodsCount ""); tvCountMoney.setText(countMoney); btnSettle.setText(countGoods); tvTitle.setText(title); } public void onSelectItem(boolean isSelectedAll) { ShoppingCartBiz.checkItem(isSelectedAll, ivSelectAll); } }); //通过监听器关联Activity和Adapter的关系,解耦; View.OnClickListener listener = adapter.getAdapterListener(); if (listener != null) { //即使换了一个新的Adapter,也要将“全选事件”传递给adapter处理; ivSelectAll.setOnClickListener(adapter.getAdapterListener()); //结算时,一般是需要将数据传给订单界面的 btnSettle.setOnClickListener(adapter.getAdapterListener()); } expandableListView.setGroupIndicator(null); expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { public boolean onGroupClick(ExpandableListView expandableListView, View view, int i, long l) { return true; } }); } public void showEmpty(boolean isEmpty) { if (isEmpty) { expandableListView.setVisibility(View.GONE); rlShoppingCartEmpty.setVisibility(View.VISIBLE); rlBottomBar.setVisibility(View.GONE); } else { expandableListView.setVisibility(View.VISIBLE); rlShoppingCartEmpty.setVisibility(View.GONE); rlBottomBar.setVisibility(View.VISIBLE); } } private void initView() { expandableListView= $(R.id.expandableListView); ivSelectAll= $(R.id.ivSelectAll); btnSettle= $(R.id.btnSettle); tvCountMoney= $(R.id.tvCountMoney); tvTitle= $(R.id.tvTitle); rlShoppingCartEmpty= $(R.id.rlShoppingCartEmpty); rlBottomBar= $(R.id.rlBottomBar); } /** 获取购物车列表的数据(数据和网络请求也是非通用部分) */ private void requestShoppingCartList() { ShoppingCartBiz.delAllGoods(); testAddGood(); //使用本地JSON,作测试用。本来应该是将商品ID发送的服务器,服务器返回对应的商品信息; ShoppingCartHttpBiz.requestOrderList(this, new ResponseCallBack() {//requestOrderList(list, new VollyHelperNew.ResponseCallBack()) public void handleResponse(Object o, int code) { // TODO Auto-generated method stub mListGoods = ShoppingCartHttpBiz.handleOrderList((JSONObject)o, code); ShoppingCartBiz.updateShopList(mListGoods); updateListView(); } }); } private void updateListView() { adapter.setList(mListGoods); adapter.notifyDataSetChanged(); expandAllGroup(); } /** * 展开所有组 */ private void expandAllGroup() { for (int i = 0; i < mListGoods.size(); i ) { expandableListView.expandGroup(i); } } /** 测试添加数据 ,添加的动作是通用的,但数据上只是添加ID而已,数据非通用 */ private void testAddGood() { ShoppingCartBiz.addGoodToCart("279457f3-4692-43bf-9676-fa9ab9155c38", "6"); ShoppingCartBiz.addGoodToCart("95fbe11d-7303-4b9f-8ca4-537d06ce2f8a", "8"); ShoppingCartBiz.addGoodToCart("8c6e52fb-d57c-45ee-8f05-50905138801b", "9"); ShoppingCartBiz.addGoodToCart("7d6e52fb-d57c-45ee-8f05-50905138801d", "3"); ShoppingCartBiz.addGoodToCart("7d6e52fb-d57c-45ee-8f05-50905138801e", "3"); ShoppingCartBiz.addGoodToCart("7d6e52fb-d57c-45ee-8f05-50905138801f", "3"); ShoppingCartBiz.addGoodToCart("7d6e52fb-d57c-45ee-8f05-50905138801g", "3"); ShoppingCartBiz.addGoodToCart("7d6e52fb-d57c-45ee-8f05-50905138801h", "3"); } /** * 省去类型转换 将此方法写在基类Activity */ protected <T extends View> T $(int id) { return (T) super.findViewById(id); } }
好例子网口号:伸出你的我的手 — 分享!
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论