aaaa

package com.bwie.test.fragment;

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

import com.bwie.test.R;
import com.bwie.test.SharedPreferences.MySharedPreferences;
import com.bwie.test.applition.ImageLoaderUtils;
import com.bwie.test.bean.UserBean;
import com.bwie.test.helper.MyDBHelper1;
import com.bwie.test.people.DengActivity;
import com.bwie.test.shopcar.ShopjiesuanActivity;
import com.bwie.test.utils.NetUtils;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;

import android.app.AlertDialog;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
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.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.AnimationUtils;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemLongClickListener;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.RelativeLayout;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class Shopcar_Fragment extends Fragment implements OnClickListener {

    private View view;
    private Context context;
    private ImageView anim;
    private TextView head;
    private ImageView back1;
    private TextView head1;
    private ImageView back;
    private List<UserBean> list;
    private Gridadapter1 adapter;
    private ListView listView;
    private MyDBHelper1 helper1;
    private double zongmoney = 0;
    private TextView bian;
    private Button jiesuan;
    private Button delete;
    private TextView wan;
    private Intent intent;
    private CheckBox check1;
    private TextView zongjia;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        context = this.getActivity();
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        boolean connectionToInternet = NetUtils.isConnectingToInternet(context);
        if (connectionToInternet) {
            helper1 = new MyDBHelper1(getActivity());
            list = helper1.querylist();
            //判断数据库是否有数据
            boolean checked=MySharedPreferences.getboolean1(getActivity());
            if (checked) {
                if (list.size() == 0) {
                    view = View.inflate(context, R.layout.shopcar_fragment, null);
                    initview();
                    head.setText("购物车");
                    back.setVisibility(View.GONE);
                } else {
                    view = View.inflate(getActivity(), R.layout.shopcar1, null);
                    Initview();
                    head1.setText("购物车");
                    back1.setVisibility(View.GONE);
                    // 获取数据库
                    Setadapter();
                    //长按删除
                    Onclickliong();
                }
            }else {
                intent=new Intent(getActivity(),DengActivity.class);
                startActivity(intent);
                
            }    
            
        } else {
            view = View.inflate(getActivity(), R.layout.internet, null);
            anim = (ImageView) view.findViewById(R.id.loading);
            Animation animation = AnimationUtils.loadAnimation(context,
                    R.anim.refresh);
            anim.startAnimation(animation);
            animation.setAnimationListener(new AnimationListener() {

                @Override
                public void onAnimationStart(Animation animation) {
                    anim.setVisibility(View.VISIBLE);
                }

                @Override
                public void onAnimationRepeat(Animation animation) {
                    // TODO Auto-generated method stub

                }

                @Override
                public void onAnimationEnd(Animation animation) {
                    anim.setVisibility(View.GONE);
                }
            });
        }
        return view;
    }

    private void Onclickliong() {
        listView.setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                    final int arg2, long arg3) {
                Dialog alertDialog = new AlertDialog.Builder(getActivity()).
                        setTitle("确定删除?").
                        setMessage("您确定删除该条信息吗?").
                        setPositiveButton("确定", new DialogInterface.OnClickListener() {
                             
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                               helper1.deleteUser(list.get(arg2).getId());
                               List<UserBean> data1 = helper1.querylist();
                               list.clear();
                               list.addAll(data1);
                               adapter = new Gridadapter1(getActivity(), list);
                               listView.setAdapter(adapter);
                               adapter.notifyDataSetChanged();
                            }
                        }).
                        setNegativeButton("取消", new DialogInterface.OnClickListener() {
                             
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        }).
                        create();
                alertDialog.show();
                return false;
            }
        });
    }

    /**
     * 查询数据库,并分配数据
     */
    private void Setadapter() {
        if (adapter == null) {
            adapter = new Gridadapter1(getActivity(), list);
            listView.setAdapter(adapter);
        } else {
            adapter.notifyDataSetChanged();
        }
    }

    private void Initview() {
        head1 = (TextView) view.findViewById(R.id.head);
        check1 = (CheckBox) view.findViewById(R.id.checkBox1);
        wan = (TextView) view.findViewById(R.id.wan);
        zongjia = (TextView) view.findViewById(R.id.ttt1);
        jiesuan = (Button) view.findViewById(R.id.jiesuan);
        delete = (Button) view.findViewById(R.id.shanchu);
        back1 = (ImageView) view.findViewById(R.id.back);
        listView = (ListView) view.findViewById(R.id.listview1);
        bian = (TextView) view.findViewById(R.id.bian);
        bian.setOnClickListener(this);
        jiesuan.setOnClickListener(this);
        wan.setOnClickListener(this);
        delete.setOnClickListener(this);
        check1.setOnClickListener(this);
    }

    private void initview() {
        head = (TextView) view.findViewById(R.id.head);
        back = (ImageView) view.findViewById(R.id.back);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.bian:
            adapter.shuzhi(2);
            wan.setVisibility(View.VISIBLE);
            bian.setVisibility(View.GONE);
            jiesuan.setVisibility(View.GONE);
            delete.setVisibility(View.VISIBLE);
            break;
        case R.id.wan:
            bian.setVisibility(View.VISIBLE);
            wan.setVisibility(View.GONE);
            delete.setVisibility(View.GONE);
            jiesuan.setVisibility(View.VISIBLE);
            adapter.shuzhi(1);
            for (int i = 0; i < adapter.getLink().size(); i++) {
                helper1.Update(list.get(i).getName(), adapter.getLink().get(i));
            }
            // 查询数据库拿到最新数据,设置到adapter
            List<UserBean> data = helper1.querylist();
            list.clear();
            list.addAll(data);
            adapter = new Gridadapter1(getActivity(), list);
            listView.setAdapter(adapter);
            adapter.notifyDataSetChanged();
            break;
        case R.id.jiesuan:
            intent = new Intent(getActivity(), ShopjiesuanActivity.class);
            intent.putExtra("name", list.get(0).getName());
            intent.putExtra("image", list.get(0).getImage());
            intent.putExtra("price", list.get(0).getPrice());
            intent.putExtra("num", list.get(0).getNum() + "");
            startActivity(intent);
            break;
        case R.id.checkBox1:
            boolean flag = check1.isChecked();
            if (flag == true) {
                double zj = 0.0f;
                for (int i = 0; i < adapter.getSelect().size(); i++) {
                    adapter.getSelect().set(i, flag);
                }
                for (int i = 0; i < adapter.getSelect().size(); i++) {
                    if (adapter.getSelect().get(i) == true) {
                        zj = (adapter.linkp.get(i)) * (adapter.link.get(i));
                        zongmoney = zongmoney + zj;
                    } else {
                        zj = (adapter.linkp.get(i)) * (adapter.link.get(i));
                        zongmoney = zongmoney - zj;
                    }
                }
                // 点击全选之后把总价赋值给适配器
                adapter.mm = zongmoney;
                if (zongmoney > 0) {
                    zongjia.setText("总计:¥"
                            + new DecimalFormat("#0.00").format(zongmoney));
                } else {
                    zongjia.setText("总计:¥"
                            + new DecimalFormat("#0.00").format(0));
                }

            } else {
                boolean selects = check1.isChecked();
                for (int i = 0; i < adapter.getSelect().size(); i++) {
                    adapter.getSelect().set(i, selects);
                }
                zongmoney = 0;
                adapter.mm = zongmoney;
                zongjia.setText("总计:¥"
                        + new DecimalFormat("#0.00").format(zongmoney));
            }
            adapter.notifyDataSetChanged();
            break;
        case R.id.shanchu:
            for (int i = 0; i < adapter.getLink().size(); i++) {
                helper1.deleteUser(adapter.getLink().get(i));
            }
            // 查询数据库拿到最新数据,设置到adapter
            List<UserBean> data1 = helper1.querylist();
            list.clear();
            list.addAll(data1);
            adapter = new Gridadapter1(getActivity(), list);
            listView.setAdapter(adapter);
            adapter.notifyDataSetChanged();
            break;

        default:
            break;
        }
    }

    class Gridadapter1 extends BaseAdapter {
        Context context;
        List<UserBean> list;
        public double mm = 0.0f;
        private LinkedList<Integer> link = new LinkedList<Integer>();
        private LinkedList<Integer> link1 = new LinkedList<Integer>();
        private LinkedList<Double> linkp = new LinkedList<Double>();
        private LinkedList<Boolean> linkedList = new LinkedList<Boolean>();
        private ViewHolder holder;
        private DisplayImageOptions initOptions;
        private int n;

        public void shuzhi(int aa) {
            n = aa;
        }

        public Gridadapter1(Context context, List<UserBean> list) {
            super();
            this.context = context;
            this.list = list;
            // 初始化
            for (int i = 0; i < list.size(); i++) {
                getSelect().add(false);
            }
            // 初始化
            for (int i = 0; i < list.size(); i++) {
                link.add(Integer.parseInt(list.get(i).getNum()));
            }
            // 初始化
            for (int i = 0; i < list.size(); i++) {
                link1.add(list.get(i).getId());
            }

            for (int i = 0; i < list.size(); i++) {
                linkp.add(Double.parseDouble(list.get(i).getPrice()));
            }
        }

        public LinkedList<Integer> getLink() {
            return link;
        }
        
        public LinkedList<Integer> getLink1() {
            return link1;
        }

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

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

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

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

        @Override
        public View getView(final int arg0, View arg1, ViewGroup arg2) {
            if (arg1 == null) {
                initOptions = ImageLoaderUtils.initOptions();
                arg1 = View.inflate(context, R.layout.shoppingcar_item1, null);
                holder = new ViewHolder();
                holder.t1 = (TextView) arg1.findViewById(R.id.textView1);
                holder.t2 = (TextView) arg1.findViewById(R.id.textView2);
                holder.num = (TextView) arg1.findViewById(R.id.num);
                holder.jia = (Button) arg1.findViewById(R.id.jia);
                holder.jian = (Button) arg1.findViewById(R.id.jian);
                holder.check = (CheckBox) arg1.findViewById(R.id.checkBox1);
                holder.rr = (RelativeLayout) arg1.findViewById(R.id.shu11);
                holder.t3 = (TextView) arg1.findViewById(R.id.textView3);
                holder.img = (ImageView) arg1.findViewById(R.id.imageView1);
                arg1.setTag(holder);
            } else {
                holder = (ViewHolder) arg1.getTag();
            }
            if (n == 2) {
                holder.rr.setVisibility(View.VISIBLE);
                holder.t3.setVisibility(View.INVISIBLE);
            } else {
                holder.rr.setVisibility(View.GONE);
                holder.t3.setVisibility(View.VISIBLE);
            }
            holder.t1.setText(list.get(arg0).getName());
            holder.t2.setText("¥" + list.get(arg0).getPrice());
            holder.t3.setText("数量:" + list.get(arg0).getNum());
            ImageLoader.getInstance().displayImage(list.get(arg0).getImage(),
                    holder.img, initOptions);
            // 不能用onCheckChangedListner()复用的时候
            holder.check.setChecked(linkedList.get(arg0));
            holder.check.setOnClickListener(new OnClickListener() {

                private double zj = 0.0f;

                @Override
                public void onClick(View v) {
                    linkedList.set(arg0, !linkedList.get(arg0));
                    // linkedList集合中当前角标的状态
                    if (linkedList.get(arg0) == true) {
                        // 状态为true,link所存的商品数量*传入集合中的商品价格(角标相同,所以一一对应)
                        zj = (linkp.get(arg0)) * (adapter.link.get(arg0));
                        // 赋值给定义的全局变量(也就是总价)
                        mm = mm + zj;
                    } else {
                        zj = (linkp.get(arg0)) * (adapter.link.get(arg0));
                        mm = mm - zj;
                    }
                    // 把经过计算的总价set到控件
                    if (mm > 0) {
                        zongjia.setText("总计:¥"
                                + new DecimalFormat("#0.00").format(mm));
                    } else {
                        zongjia.setText("总计:¥"
                                + new DecimalFormat("#0.00").format(0));
                    }
                    // 判断:如果linklist里包含false,全选不选中,否则(都是true的情况下)选中全选。
                    if (linkedList.contains(false)) {
                        check1.setChecked(false);
                        zongmoney = 0;
                    } else {
                        check1.setChecked(true);
                        zongmoney = mm;
                    }
                    notifyDataSetChanged();
                }
            });
            holder.num.setText(link.get(arg0) + "");
            holder.jia.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    if (link.get(arg0) >= 5) {
                        Toast.makeText(getActivity(), "本商品限购5件哟!", 0).show();
                    } else {
                        link.set(arg0, (link.get(arg0) + 1));
                        holder.num.setText(link.get(arg0) + "");
                    }
                    notifyDataSetChanged();
                }
            });
            holder.jian.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    if (link.get(arg0) <= 1) {
                        Toast.makeText(getActivity(), "商品不能少于1件哟!", 0).show();
                    } else {
                        link.set(arg0, (link.get(arg0) - 1));
                        holder.num.setText(link.get(arg0) + "");
                    }
                    notifyDataSetChanged();
                }
            });
            return arg1;
        }

        class ViewHolder {
            TextView t1;
            TextView t2;
            CheckBox check;
            TextView t3;
            TextView num;
            Button jia;
            Button jian;
            RelativeLayout rr;
            ImageView img;
        }

    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值