御泥坊的购物车单选、全选,改变数量

package com.example.fragment;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.example.db.Gooddao;
import com.example.db.Shop;
import com.example.test.R;
import com.nostra13.universalimageloader.core.ImageLoader;

public class Fragment3 extends Fragment implements OnClickListener {

	private Gooddao dao;
	private ListView shoplist;
	private static ArrayList<Shop> datas = new ArrayList<Shop>();
	private CheckBox checks;
	private Shoplistada checkAdapter;
	private Button delete;
	private TextView bianji;
	private LinearLayout shop_la;
	private TextView wancheng;
	private double sum;
	private TextView zongji;
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		View view = View.inflate(getActivity(), R.layout.fragment3, null);
		shoplist = (ListView) view.findViewById(R.id.shoplist);
		delete = (Button) view.findViewById(R.id.delete);
		shop_la = (LinearLayout) view.findViewById(R.id.shop_la);
		bianji = (TextView) view.findViewById(R.id.bianji);
		checks = (CheckBox) view.findViewById(R.id.checks);
		wancheng = (TextView) view.findViewById(R.id.wancheng);
		zongji = (TextView) view.findViewById(R.id.zongji);
		delete.setOnClickListener(this);
		wancheng.setOnClickListener(this);
		// 点击编辑
		bianji.setOnClickListener(this);
		// 全选
		checks.setOnClickListener(this);
		dao = new Gooddao(getActivity());
		startTo();
		return view;
	}
	@Override
	public void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		startTo();
	}
	private void startTo() {
		datas = dao.select();
		checkAdapter = new Shoplistada(getActivity(), datas);
		shoplist.setAdapter(checkAdapter);
		checkAdapter.notifyDataSetChanged();
	}
	@Override
	public void onClick(View arg0) {
		switch (arg0.getId()) {
		case R.id.checks:
			boolean flag = checks.isChecked();
			for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
				checkAdapter.getSelect().set(i, flag);
			}
			checkAdapter.notifyDataSetChanged();
			sum = 0;
			if (flag == true) {
				for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
					sum = sum + datas.get(i).getShop_price()
							* datas.get(i).getNum();
					DecimalFormat df = new DecimalFormat("###.00");
					zongji.setText("¥" + df.format(sum));
					checkAdapter.getSelect().set(i, flag);
				}
			} else if (flag == false) {
				for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
					sum = 0;
					zongji.setText("¥" + sum);
					checkAdapter.getSelect().set(i, flag);
				}
			}
			checkAdapter.notifyDataSetChanged();
			break;
		case R.id.jiesuan:
			break;
		case R.id.delete:
			sum = 0;
			boolean fg = checks.isChecked();
			if (fg == true) {
				sum = 0;
				for (int i = 0; i < checkAdapter.getSelect().size(); i++) {
					zongji.setText("¥" + sum);
					checkAdapter.getSelect().set(i, fg);
				}
				checks.setChecked(false);
			}
			if (checkAdapter.linkedList.contains(true)) {
				List<String> sl = new ArrayList<String>();
				for (int i = 0; i < checkAdapter.linkedList.size(); i++) {
					if (checkAdapter.linkedList.get(i) == true) {
						sl.add(datas.get(i).getId());
					}
				}
				zongji.setText("¥" + sum);
				dao.delete(sl);
				checkAdapter.linkedList.clear();
				startTo();
			} else {
				Toast.makeText(getActivity(), "请去选择商品!", 0).show();
			}
			break;
		default:
			break;
		}
	}

	public class Shoplistada extends BaseAdapter {
		private ImageView good_img;
		private TextView good_name;
		private TextView good_shop;
		private TextView num;
		private Context context;
		private ArrayList<Shop> datas;
		private LinkedList<Boolean> linkedList = new LinkedList<Boolean>();
		public Shoplistada(Context context, ArrayList<Shop> datas) {
			this.datas = datas;
			this.context = context;
			// 初始化
			for (int i = 0; i < datas.size(); i++) {
				getSelect().add(false);
			}
		}

		private List<Boolean> getSelect() {
			return linkedList;
		}

		@Override
		public int getCount() {
			// TODO Auto-generated method stub
			return datas.size();
		}

		@Override
		public Object getItem(int arg0) {
			// TODO Auto-generated method stub
			return null;
		}

		@Override
		public long getItemId(int arg0) {
			// TODO Auto-generated method stub
			return 0;
		}

		@Override
		public View getView(final int position, View arg1, ViewGroup arg2) {
			View view = View.inflate(context, R.layout.shoplist, null);
			final CheckBox ck = (CheckBox) view.findViewById(R.id.ck);
			good_img = (ImageView) view.findViewById(R.id.sgood_img);
			good_name = (TextView) view.findViewById(R.id.sgood_name);
			good_shop = (TextView) view.findViewById(R.id.sgood_shop);
			num = (TextView) view.findViewById(R.id.num);
			ImageLoader.getInstance().displayImage(
					datas.get(position).getGoods_img(), good_img);
			good_name.setText(datas.get(position).getGoods_name());
			good_shop.setText("¥" + datas.get(position).getShop_price());
			num.setText("数量:" + datas.get(position).getNum());
			ck.setChecked(linkedList.get(position));
			ck.setOnClickListener(new OnClickListener() {
				@Override
				public void onClick(View v) {
					if (ck.isChecked() == true) {
						sum = sum + datas.get(position).getShop_price()
								* datas.get(position).getNum();
						DecimalFormat df = new DecimalFormat("###.00");
						zongji.setText("¥" + df.format(sum));
					} else if (ck.isChecked() == false) {
						sum = sum - datas.get(position).getShop_price()
								* datas.get(position).getNum();
						DecimalFormat df = new DecimalFormat("###.00");
						zongji.setText("¥" + df.format(sum));
					}
					linkedList.set(position, !linkedList.get(position));
					if (linkedList.contains(false)) {
						checks.setChecked(false);
					} else {
						checks.setChecked(true);
					}
					notifyDataSetChanged();
				}
			});
			return view;
		}

	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值