utils工具包

用Map来盛装订单里所有商品对象的数据集合

package com.linyou.lifeservice.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import android.os.Handler;
import android.widget.TextView;

import com.linyou.lifeservice.Constant;
import com.linyou.lifeservice.ceshi.p;
import com.linyou.lifeservice.entity.Goods;

//用Map来盛装订单里所有商品对象的数据集合
public class OrderUtil {

//    private double totalPrice;

    private Map<String,Goods> goodsMap; //商品的ID 和商品的键值对  对象集合

    private static OrderUtil instance;  //订单工具单例化

    private static List<Handler> mHandlerList;  //有一个静态集合专门用来存储Handler对象的

    private OrderUtil()
    {
        goodsMap = new HashMap<String, Goods>();
        mHandlerList = new ArrayList<Handler>();
    }

    public static OrderUtil getInstance()   //订单工具单例化
    {
        if(null == instance){
            instance = new OrderUtil();
        }
        return instance;
    }

    /*public void addGoods(Goods goods)   //向订单里增加商品  这个在订单适配器中肯定有详细的用处
    {
        if (goodsMap.containsKey(goods.getId()))
        {
            //remove(goods);
        }else{
            double s = ArithUtil.mul(""+goods.getCount(), goods.getPrice());
            goodsMap.put(goods.getId(),goods);
        }
        notifyDataChanged();
    }*/

    public void addGoods(Goods goods)   //向订单里增加商品  这个在订单适配器中肯定有详细的用处
    {
        if (goodsMap.containsKey(goods.getId()))
        {
            remove(goods);
        }
        double s = ArithUtil.mul(""+goods.getCount(), goods.getPrice());
        goodsMap.put(goods.getId(), goods);
        notifyDataChanged();
    }

    public void remove(Goods goods)
    {
        double s = ArithUtil.mul(""+goods.getCount(), goods.getPrice());
        goodsMap.remove(goods.getId());
        notifyDataChanged();
    }

    public void updateGoodsList(List<Goods> list) 
    //修改订单,如果集合中包括该商品,则不添加,否则添加商品到集合中
    {
        String total = "0";
        double total_ = 0;
        for(Goods goods :list)
        {
            if(goodsMap.containsKey(goods.getId()))
            {
                continue;
            }
            else {
                if (Integer.valueOf(goods.getId()) != 0) {
                    goodsMap.put(goods.getId(), goods);
                    //p.L("放入购物车的商品ID清单", goods.getId());
                }

            }
        }
        notifyDataChanged();

        //p.L("放入购物车的商品清单goodsList", goodsMap.size()+"");

    }

    //将所有商品集合的值组成一个集合
    public List<Goods> getGoodsList()
    {
        List<Goods> goodsList = new ArrayList<Goods>();
        goodsList.addAll(goodsMap.values());
        //notifyDataChanged();//这个是我后来加上去的

        for (Goods g:goodsList){
            //p.L("放入购物车的商品清单goodsList",goodsList.size()+"  "+g.getName());
        }
        return goodsList;
    }



    //将一个handler注册进入本文的handler集合中
    public void registerHandler(Handler mHandler)
    {
        mHandlerList.add(mHandler);
    }

    //获得商品总的价格
    public String getTotalPrice()
    {
        List<Goods> goodsList = getGoodsList();
        double total = 0.0;
        for (Goods goods : goodsList)
        {
            //p.L("购物车内商品的清单列表",goods.toString());
            double s = ArithUtil.mul(""+goods.getCount(), goods.getPrice());
            total += s;
        }
        return ""+total;
    }

    //从handler集合中清除所有的handler
    public void unRegisterHandler(Handler mHandler)
    {
        if(mHandlerList.contains(mHandler))
        {
            mHandlerList.remove(mHandler);
        }
    }

    //将商品集合清空
    public void clear()
    {
        goodsMap.clear();
        notifyDataChanged();
    }


    //一个购买了多少件商品
    public int getCount()
    {
        int count = 0;
        List<Goods> goodsList = getGoodsList();
        for (Goods goods : goodsList)
        {
            count += goods.getCount();
        }
        return count;
    }


    //这个方法就是工具类中每做一次更改  都要向主Activity页面发送一个信息
    public void notifyDataChanged()
    {
        for(Handler mHandler:mHandlerList ){
            mHandler.sendEmptyMessage(Constant.ORDER_CHANGED);
        }
    }

}

自己包装的MyToast类

  • 自己包装的类
  • 包装类的调用
package com.yikang.heartmark.util;

import android.content.Context;
import android.os.Handler;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.TextView;
import android.widget.Toast;

import com.example.heartmark.R;

public class MyToast {
    // ---------------------------------------自定义多次点击只显示一次的Toast------------------------------//

    public static final int LENGTH_SHORT = android.widget.Toast.LENGTH_SHORT;
    public static final int LENGTH_LONG = android.widget.Toast.LENGTH_LONG;

    //这是系统的Toast
    private static android.widget.Toast toast;
    private static View toastRoot;
    private static TextView tv;
    // private static String oldMsg;
    private static Handler handler = new Handler();

    // 多线程任务
    private static Runnable run = new Runnable() {
        public void run() {
            toast.cancel();
        }
    };
    private static void toast(Context ctx, CharSequence msg, int duration) {

        handler.removeCallbacks(run);
        // handler的duration不能直接对应Toast的常量时长,在此针对Toast的常量相应定义时长
        switch (duration) {
        case LENGTH_SHORT:// Toast.LENGTH_SHORT值为0,对应的持续时间大概为1s
            duration = 1000;
            break;
        case LENGTH_LONG:// Toast.LENGTH_LONG值为1,对应的持续时间大概为3s
            duration = 3000;
            break;
        default:
            break;
        }
        if (null != toast) {
            // toast.setText(msg);//使用系统自带Toast
            /**
             * 为自定义Toast设置显示内容
             */
            tv.setText(msg);
        } else {
            /**
             * 初始化自定义toast
             */
            toast = new Toast(ctx);
            toastRoot = LayoutInflater.from(ctx).inflate(R.layout.toast_layout,
                    null);
            tv = (TextView) toastRoot.findViewById(R.id.tv_toast_textShow);
            tv.setText(msg);
            toast.setDuration(duration);
            toast.setGravity(Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM, 0, 180);
            toast.setView(toastRoot);
        }
        handler.postDelayed(run, duration);
        toast.show();
    }

    /**
     * 弹出Toast
     * 
     * @param ctx
     *            弹出Toast的上下文
     * @param msg
     *            弹出Toast的内容
     * @param duration
     *            弹出Toast的持续时间
     */
    public static void show(Context ctx, CharSequence msg, int duration)
            throws NullPointerException {
        if (null == ctx) {
            throw new NullPointerException("The ctx is null!");
        }
        if (0 > duration) {
            duration = LENGTH_SHORT;
        }
        toast(ctx, msg, duration);
    }

    /**
     * 弹出Toast
     * 
     * @param ctx
     *            弹出Toast的上下文
     * @param msg
     *            弹出Toast的内容的资源ID
     * @param duration
     *            弹出Toast的持续时间
     */
    public static void show(Context ctx, int resId, int duration)
            throws NullPointerException {
        if (null == ctx) {
            throw new NullPointerException("The ctx is null!");
        }
        if (0 > duration) {
            duration = LENGTH_SHORT;
        }
        toast(ctx, ctx.getResources().getString(resId), duration);
    }
}
package com.yikang.heartmark.util;

import com.example.heartmark.R;
import com.yikang.heartmark.activity.YongYaoAddActivity;

import android.content.Context;
import android.widget.Toast;

//  ShowUtil.showToast(YongYaoAddActivity.this, R.string.no_data);   测试语句
public class ShowUtil {
    // 显示toast
    public static void showToast(Context context, int value) {
        MyToast.show(context, value, Toast.LENGTH_LONG);
    }
    public static void showToast(Context context, String value) {
        MyToast.show(context, value, Toast.LENGTH_LONG);
    }
}

results matching ""

    No results matching ""