購物車布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.newshoppcart.view.ShoppCartActivity">
<RelativeLayout
android:id="@+id/text_title"
android:layout_width="match_parent"
android:layout_height="50dp">
<ImageView
android:layout_centerVertical="true"
android:id="@+id/detail_image_back"
android:padding="5dp"
android:src="@drawable/leftjiantou"
android:layout_width="40dp"
android:layout_height="40dp" />
<TextView
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:textSize="18sp"
android:padding="10dp"
android:text="購物車" />
</RelativeLayout>
<com.scwang.smartrefresh.layout.SmartRefreshLayout
android:layout_below="@+id/text_title"
android:layout_above="@+id/linear_bottom"
android:id="@+id/smart_refresh"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="none">
<!--二級清單登入的按鈕-->
<com.example.newshoppcart.view.custom.MyExpanableView
android:id="@+id/my_expanable_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone">
</com.example.newshoppcart.view.custom.MyExpanableView>
</ScrollView>
</com.scwang.smartrefresh.layout.SmartRefreshLayout>
<RelativeLayout
android:layout_above="@+id/linear_bottom"
android:layout_below="@+id/text_title"
android:id="@+id/relative_progress"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:visibility="gone">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
</RelativeLayout>
<LinearLayout
android:id="@+id/linear_bottom"
android:layout_alignParentBottom="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="50dp">
<CheckBox
android:button="@null"
android:background="@drawable/check_box_selector"
android:layout_marginLeft="10dp"
android:id="@+id/cart_check_all"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:layout_marginLeft="5dp"
android:text="全選"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:textSize="20sp"
android:layout_marginLeft="10dp"
android:id="@+id/text_total"
android:text="合計:¥0.00"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content" />
<TextView
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:paddingTop="10dp"
android:paddingBottom="10dp"
android:id="@+id/text_buy"
android:gravity="center"
android:background="#ff0000"
android:textColor="#ffffff"
android:text="去結算(0)"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
全選用到的背景shape
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true" android:drawable="@drawable/shopping_cart_checked"/>
<item android:state_checked="false" android:drawable="@drawable/shopping_cart_none_check"/>
<item android:drawable="@drawable/shopping_cart_none_check"/>
</selector>
自定義二級清單
public class MyExpanableView extends ExpandableListView {
public MyExpanableView(Context context) {
super(context);
}
public MyExpanableView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyExpanableView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
//Integer.MAX_VALUE >>2 移動兩位
int height = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE>>,MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, height);
}
}
在擷取的資料bean裡自己定義一個方法
//自己手動建立一個變量 生成set get方法....記錄組的checkBox是否選中
private boolean isGroupChecked;
public boolean isGroupChecked() {
return isGroupChecked;
}
public void setGroupChecked(boolean groupChecked) {
isGroupChecked = groupChecked;
}
二級清單的擴充卡包括資料加減
public class MyExpanableAdapter extends BaseExpandableListAdapter{
private FragmentCartPresenter fragmentCartPresenter;
private RelativeLayout relative_progress;
private Handler handler;
private CartBean cartBean;
private Context context;
private DecimalFormat decimalFormat = new DecimalFormat("0.00");
private int childIndex;
private int allIndex;
public MyExpanableAdapter(Context context, CartBean cartBean, Handler handler, RelativeLayout relative_progress, FragmentCartPresenter fragmentCartPresenter) {
this.context = context;
this.cartBean = cartBean;
this.handler = handler;
this.relative_progress = relative_progress;
this.fragmentCartPresenter = fragmentCartPresenter;
}
@Override
public int getGroupCount() {
return cartBean.getData().size();
}
//一組裡面有多少個子條目...cartBean.getData().get(groupPosition).getList(),,某一個組裡面子條目的資料
@Override
public int getChildrenCount(int groupPosition) {
return cartBean.getData().get(groupPosition).getList().size();
}
//cartBean.getData().get(groupPosition)某個組的資料
@Override
public Object getGroup(int groupPosition) {
return cartBean.getData().get(groupPosition);
}
@Override
public Object getChild(int groupPosition, int childPosition) {
return cartBean.getData().get(groupPosition).getList().get(childPosition);
}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean b, View view, ViewGroup viewGroup) {
final GroupHolder holder;
if (view == null) {
view = View.inflate(context, R.layout.cart_group_item_layout,null);
holder = new GroupHolder();
holder.group_check_box = view.findViewById(R.id.group_check_box);
holder.group_shop_name = view.findViewById(R.id.group_shop_name);
view.setTag(holder);
}else {
holder = (GroupHolder) view.getTag();
}
//指派..checkBox設定是否選中...商家設定名字
final CartBean.DataBean dataBean = cartBean.getData().get(groupPosition);
holder.group_shop_name.setText(dataBean.getSellerName());
holder.group_check_box.setChecked(dataBean.isGroupChecked());
//設定點選事件
holder.group_check_box.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//顯示progress
relative_progress.setVisibility(View.VISIBLE);
childIndex = ;
//根據商家是否選中的狀态,,,去更新所有子孩子的狀态
updateChildInGroup(holder.group_check_box.isChecked(),dataBean);
}
});
return view;
}
/**
* 根據組的狀态...根據所有裡面的子孩子
* @param checked 表示組是否選中
* @param dataBean
*/
private void updateChildInGroup(final boolean checked, final CartBean.DataBean dataBean) {
CartBean.DataBean.ListBean listBean = dataBean.getList().get(childIndex);
//更新購物車
//更新購物車....跟新目前商品是否能選中的狀态...selected值
Map<String, String> params = new HashMap<>();
//?uid=71&sellerid=1&pid=1&selected=0&num=10
params.put("uid", CommonUtils.getString("uid"));
params.put("sellerid", String.valueOf(listBean.getSellerid()));
params.put("pid", String.valueOf(listBean.getPid()));
params.put("selected", String.valueOf(checked ? :));
params.put("num", String.valueOf(listBean.getNum()));
OkHttp3Util_03.doPost(ApiUtil.UPDATE_CART_URL, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
childIndex ++;
if (childIndex < dataBean.getList().size()) {
//可以繼續更新
updateChildInGroup(checked,dataBean);
}else {
//已經全部更新完成....重新查詢購物車資料,顯示
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
}
}
});
}
@Override
public View getChildView(int groupPosition, int childPosition, boolean b, View view, ViewGroup viewGroup) {
ChildHolder holder;
if (view == null) {
view = View.inflate(context,R.layout.cart_child_item_layout,null);
holder = new ChildHolder();
holder.child_check_box = view.findViewById(R.id.child_check_box);
holder.child_image = view.findViewById(R.id.child_image);
holder.child_title = view.findViewById(R.id.child_title);
holder.child_text_add = view.findViewById(R.id.child_text_add);
holder.child_text_num = view.findViewById(R.id.child_text_num);
holder.child_text_jian = view.findViewById(R.id.child_text_jian);
holder.child_price = view.findViewById(R.id.child_price);
holder.child_text_delete = view.findViewById(R.id.child_text_delete);
view.setTag(holder);
}else {
holder = (ChildHolder) view.getTag();
}
//指派
final CartBean.DataBean.ListBean listBean = cartBean.getData().get(groupPosition).getList().get(childPosition);
設定子條目是否選中...selected : 1,,0表示不選中,1表示選中
holder.child_check_box.setChecked(listBean.getSelected() == ? true :false);
Glide.with(context).load(listBean.getImages().split("\\|")[]).into(holder.child_image);
holder.child_title.setText(listBean.getTitle());
//一個double類型的值保留兩位小數
holder.child_price.setText("¥"+decimalFormat.format(listBean.getBargainPrice()));
//注意:----text設定文本的時候一定要是string類型
holder.child_text_num.setText(String.valueOf(listBean.getNum()));
//checkBox點選事件
holder.child_check_box.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//顯示progressBar
relative_progress.setVisibility(View.VISIBLE);
//更新購物車....跟新目前商品是否能選中的狀态...selected值
Map<String, String> params = new HashMap<>();
//?uid=71&sellerid=1&pid=1&selected=0&num=10
params.put("uid", CommonUtils.getString("uid"));
params.put("sellerid", String.valueOf(listBean.getSellerid()));
params.put("pid", String.valueOf(listBean.getPid()));
//此時需要selected是否選中...傳什麼值過去?如果目前是1 傳0,,如果是0,,傳1
params.put("selected", String.valueOf(listBean.getSelected()== ? :));
params.put("num", String.valueOf(listBean.getNum()));
OkHttp3Util_03.doPost(ApiUtil.UPDATE_CART_URL, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
//更新成功之後....重新查詢一下購物車的資料,然後進行展示
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
}
});
}
});
//加
holder.child_text_add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//顯示progressBar
relative_progress.setVisibility(View.VISIBLE);
//更新購物車....跟新目前商品是否能選中的狀态...selected值
Map<String, String> params = new HashMap<>();
//?uid=71&sellerid=1&pid=1&selected=0&num=10
params.put("uid", CommonUtils.getString("uid"));
params.put("sellerid", String.valueOf(listBean.getSellerid()));
params.put("pid", String.valueOf(listBean.getPid()));
params.put("selected", String.valueOf(listBean.getSelected()));
//num+1
params.put("num", String.valueOf(listBean.getNum() +));
OkHttp3Util_03.doPost(ApiUtil.UPDATE_CART_URL, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
//更新成功之後....重新查詢一下購物車的資料,然後進行展示
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
}
});
}
});
//減
holder.child_text_jian.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int num = listBean.getNum();
if (num == ) {
return;
}
//顯示progressBar
relative_progress.setVisibility(View.VISIBLE);
//更新購物車....跟新目前商品是否能選中的狀态...selected值
Map<String, String> params = new HashMap<>();
//?uid=71&sellerid=1&pid=1&selected=0&num=10
params.put("uid", CommonUtils.getString("uid"));
params.put("sellerid", String.valueOf(listBean.getSellerid()));
params.put("pid", String.valueOf(listBean.getPid()));
params.put("selected", String.valueOf(listBean.getSelected()));
params.put("num", String.valueOf(num -));
OkHttp3Util_03.doPost(ApiUtil.UPDATE_CART_URL, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
//更新成功之後....重新查詢一下購物車的資料,然後進行展示
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
}
});
}
});
//删除
holder.child_text_delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//顯示progress
relative_progress.setVisibility(View.VISIBLE);
//請求删除購物車的接口...删除成功之後 再次請求查詢購物車
Map<String, String> params = new HashMap<>();
//?uid=72&pid=1
params.put("uid",CommonUtils.getString("uid"));
params.put("pid", String.valueOf(listBean.getPid()));
OkHttp3Util_03.doPost(ApiUtil.DELETE_CART_URL, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
//查詢購物車的資料
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
}
});
}
});
return view;
}
//如果傳回false 子條目不可以點選
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}
/**
* 計算價格和數量....發送給fragment進行顯示
*/
public void sendPriceAndCount() {
double price = ;
int count = ;
for (int i= ;i<cartBean.getData().size();i++) {
//周遊每一組裡面的子孩子
List<CartBean.DataBean.ListBean> list = cartBean.getData().get(i).getList();
for (int j = ; j< list.size(); j++) {
//判斷每一個子孩子是否選中,,,如果選中計算價格和數量
if (list.get(j).getSelected() == ) {
price = price + list.get(j).getBargainPrice() * list.get(j).getNum();
count += list.get(j).getNum();
}
}
}
String priceString = decimalFormat.format(price);
CountPriceBean countPriceBean = new CountPriceBean(priceString, count);
//去顯示價格和數量
Message msg = Message.obtain();
msg.what = ;
msg.obj = countPriceBean;
handler.sendMessage(msg);
}
/**
* 點選全選的時候,,,,根據全選的狀态 改變購物車所有商品的選中狀态
* @param checked 全選的狀态
*/
public void setAllChildChecked(boolean checked) {
//改變購物車所有商品的選中狀态...要有這些所有的商品...建立一個結合裝所有的商品
List<CartBean.DataBean.ListBean> allList = new ArrayList<>();
for (int i = ;i<cartBean.getData().size();i++) {
List<CartBean.DataBean.ListBean> list = cartBean.getData().get(i).getList();
for (int j = ; j< list.size(); j++) {
allList.add(list.get(j));
}
}
//progress
relative_progress.setVisibility(View.VISIBLE);
allIndex = ;//從第一條開始 索引是0
//操作這個allList集合
updateAllChild(allList,checked);
}
/**
* 跟新所有的子條目
* @param allList
* @param checked
*/
private void updateAllChild(final List<CartBean.DataBean.ListBean> allList, final boolean checked) {
//第一條開始
CartBean.DataBean.ListBean listBean = allList.get(allIndex);
//更新購物車....跟新目前商品是否能選中的狀态...selected值
Map<String, String> params = new HashMap<>();
//?uid=71&sellerid=1&pid=1&selected=0&num=10
params.put("uid", CommonUtils.getString("uid"));
params.put("sellerid", String.valueOf(listBean.getSellerid()));
params.put("pid", String.valueOf(listBean.getPid()));
params.put("selected", String.valueOf(checked ? :));
params.put("num", String.valueOf(listBean.getNum()));
OkHttp3Util_03.doPost(ApiUtil.UPDATE_CART_URL, params, new Callback() {
@Override
public void onFailure(Call call, IOException e) {
}
@Override
public void onResponse(Call call, Response response) throws IOException {
if (response.isSuccessful()) {
//成功之後索引+1
allIndex ++;
if (allIndex <allList.size()) {
//繼續更新下一條
updateAllChild(allList,checked);
}else {
//代表全部更新完畢....請求查詢購物車的資料
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
}
}
});
}
private class GroupHolder{
CheckBox group_check_box;
TextView group_shop_name;
}
private class ChildHolder{
CheckBox child_check_box;
ImageView child_image;
TextView child_title;
TextView child_price;
TextView child_text_jian;
TextView child_text_num;
TextView child_text_add;
TextView child_text_delete;
}
}
在Activity中使用
public class FragmentShoppingCart extends Fragment implements InterFragmentHome,FragmentCartInter, View.OnClickListener {
private LinearLayout linear_login;
private Button cart_login;
private RecyclerView tui_jian_recycler;
private MyExpanableView my_expanable_view;
private FragmentHomeP fragmentHomeP;
private RelativeLayout relative_progress;
private FragmentCartPresenter fragmentCartPresenter;
private CheckBox cart_check_all;
private TextView text_total;
private TextView text_buy;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what == ) {
CountPriceBean countPriceBean = (CountPriceBean) msg.obj;
//設定顯示
text_total.setText("合計:¥"+countPriceBean.getPriceString());
text_buy.setText("去結算("+countPriceBean.getCount()+")");
}
}
};
private MyExpanableAdapter myExpanableAdapter;
private ImageView empty_cart_image;
private CartBean cartBean;
//建立一個集合,,,裝的是去結算的時候 選中的所有商品的資料
private ArrayList<CartBean.DataBean.ListBean> list_selected = new ArrayList<>();
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.frament_cart_layout,container,false);
linear_login = view.findViewById(R.id.linear_login);
cart_login = view.findViewById(R.id.cart_login);
tui_jian_recycler = view.findViewById(R.id.tui_jian_recycler);
my_expanable_view = view.findViewById(R.id.my_expanable_view);
relative_progress = view.findViewById(R.id.relative_progress);
cart_check_all = view.findViewById(R.id.cart_check_all);
text_total = view.findViewById(R.id.text_total);
text_buy = view.findViewById(R.id.text_buy);
empty_cart_image = view.findViewById(R.id.empty_cart_image);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
initChenJin();
//去掉預設的訓示器
my_expanable_view.setGroupIndicator(null);
//失去焦點....界面不是從recyclerView開始顯示
tui_jian_recycler.setFocusable(false);
//2.為你推薦,,,隻需要擷取一次
fragmentHomeP = new FragmentHomeP(this);
//調用p層裡面的方法....https://www.zhaoapi.cn/ad/getAd
fragmentHomeP.getNetData(ApiUtil.HOME_URL);
fragmentCartPresenter = new FragmentCartPresenter(this);
//全選 設定點選事件
cart_check_all.setOnClickListener(this);
text_buy.setOnClickListener(this);
}
@Override
public void onResume() {
Log.e("----","擷取到焦點");
super.onResume();
initData();
//為你推薦的資料請求一次....其實為你推薦的資料也是随着登入和不登入改變
}
private void initData() {
//判斷是否登入...沒有,則顯示登入按鈕....已經登入顯示購物車資料
if (CommonUtils.getBoolean("isLogin")) {
//請求購物車的資料...顯示購物車
my_expanable_view.setVisibility(View.VISIBLE);
empty_cart_image.setVisibility(View.VISIBLE);
linear_login.setVisibility(View.GONE);
//請求購物車的資料
getCartData();
}else {
//登入按鈕的顯示
linear_login.setVisibility(View.VISIBLE);
my_expanable_view.setVisibility(View.GONE);
empty_cart_image.setVisibility(View.GONE);
//登入的點選事件
cart_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(getActivity(),LoginActivity.class);
startActivity(intent);
}
});
}
}
/**
* 擷取購物車資料
*/
private void getCartData() {
//顯示進度條
relative_progress.setVisibility(View.VISIBLE);
//查詢購物車的資料
fragmentCartPresenter.getCartData(ApiUtil.SELECT_CART,CommonUtils.getString("uid"));
}
@Override
public void onHiddenChanged(boolean hidden) {
super.onHiddenChanged(hidden);
if (hidden) {
//Log.e("----","隐藏");
}else {
Log.e("----","顯示");
initChenJin();
initData();
}
}
private void initChenJin() {
ChenJinUtil.setStatusBarColor(getActivity(), getResources().getColor(R.color.colorPrimaryDark));
}
@Override
public void onSuccess(final HomeBean homeBean) {
//瀑布流
tui_jian_recycler.setLayoutManager(new StaggeredGridLayoutManager(, OrientationHelper.VERTICAL));
//為你推薦設定擴充卡
TuiJianAdapter tuiJianAdapter = new TuiJianAdapter(getActivity(), homeBean.getTuijian());
tui_jian_recycler.setAdapter(tuiJianAdapter);
//為你推薦的點選事件
tuiJianAdapter.setOnItemListner(new OnItemListner() {
@Override
public void onItemClick(int position) {
//跳轉的是自己的詳情頁面
Intent intent = new Intent(getActivity(), DetailActivity.class);
//傳遞pid
intent.putExtra("pid",homeBean.getTuijian().getList().get(position).getPid());
startActivity(intent);
}
@Override
public void onItemLongClick(int position) {
}
});
}
@Override
public void onFenLeiDataSuccess(FenLeiBean fenLeiBean) {
}
@Override
public void getCartDataNull() {
relative_progress.setVisibility(View.GONE);
empty_cart_image.setVisibility(View.VISIBLE);
my_expanable_view.setVisibility(View.GONE);
Toast.makeText(getActivity(),"購物車為空,先去逛逛吧",Toast.LENGTH_SHORT).show();
}
@Override
public void getCartDataSuccess(final CartBean cartBean) {
this.cartBean = cartBean;
//進度條隐藏
relative_progress.setVisibility(View.GONE);
empty_cart_image.setVisibility(View.GONE);
my_expanable_view.setVisibility(View.VISIBLE);
//顯示購物車的資料....二級清單設定擴充卡
//1.根據某一組裡面所有子孩子是否選中,決定目前組是否選中
for (int i =;i<cartBean.getData().size();i++) {
//周遊每一組的資料,,,設定是否選中...有所有的子孩子決定
CartBean.DataBean dataBean = cartBean.getData().get(i);
dataBean.setGroupChecked(isAllChildInGroupChecked(dataBean.getList()));
}
//2.根據所有的組是否選中,,,決定全選是否選中
cart_check_all.setChecked(isAllGroupChecked(cartBean));
//3.
myExpanableAdapter = new MyExpanableAdapter(getActivity(), cartBean,handler,relative_progress,fragmentCartPresenter);
my_expanable_view.setAdapter(myExpanableAdapter);
//展開所有的每一組
for (int i = ;i<cartBean.getData().size();i++) {
my_expanable_view.expandGroup(i);
}
//4.計算商品的總價和數量
myExpanableAdapter.sendPriceAndCount();
//子條目的點選事件
my_expanable_view.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView expandableListView, View view, int groupPosition, int childPosition, long l) {
//Toast.makeText(getActivity(),"點選了",Toast.LENGTH_SHORT).show();
//跳轉的是自己的詳情頁面
Intent intent = new Intent(getActivity(), DetailActivity.class);
//傳遞pid
intent.putExtra("pid",cartBean.getData().get(groupPosition).getList().get(childPosition).getPid());
startActivity(intent);
return false;
}
});
}
/**
* 是否所有的組選中
* @param cartBean
* @return
*/
private boolean isAllGroupChecked(CartBean cartBean) {
for (int i=;i<cartBean.getData().size();i++) {
//組沒有選中
if (! cartBean.getData().get(i).isGroupChecked()) {
return false;
}
}
return true;
}
/**
* 判斷組中所有的子孩子是否全部選中
* @param list
* @return
*/
private boolean isAllChildInGroupChecked(List<CartBean.DataBean.ListBean> list) {
for (int i =;i<list.size();i++) {
if (list.get(i).getSelected() == ) {
return false;
}
}
return true;
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.cart_check_all://全選
//點選全選的時候,,,,根據全選的狀态 改變購物車所有商品的選中狀态
myExpanableAdapter.setAllChildChecked(cart_check_all.isChecked());
break;
case R.id.text_buy://去結算
//當顯示的是去結算(0)....打擊沒有任何反應
if ("去結算(0)".equals(text_buy.getText().toString())) {
return;
}
//選中了商品之後,,,跳轉到确認訂單頁面
Intent intent = new Intent(getActivity(), MakeSureOrderActivity.class);
//跳轉傳值...選中的商品的資料...傳遞一個集合過去...選中的商品的集合
//先清空一下集合
list_selected.clear();
for (int i = ;i<cartBean.getData().size();i++) {
List<CartBean.DataBean.ListBean> list = cartBean.getData().get(i).getList();
for (int j = ;j<list.size();j++) {
//判斷是否選中,,,如果選中存放到集合中去
if (list.get(j).getSelected() == ) {
list_selected.add(list.get(j));
}
}
}
//通過intent把集合傳到下一個頁面
intent.putExtra("list_selected",list_selected);
startActivity(intent);
break;
}
}
}