文档章节

练习1

 易水寒521
发布于 2015/06/15 16:38
字数 783
阅读 10
收藏 0
package cn.thewee.gourmetmeal.staff.logic;

import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Bitmap;
import android.util.Log;
import cn.thewee.gourmetmeal.staff.R;
import cn.thewee.gourmetmeal.staff.bean.DbHelper;
import cn.thewee.gourmetmeal.staff.bean.Dish;
import cn.thewee.gourmetmeal.staff.util.JsonDecoder;
import cn.thewee.gourmetmeal.staff.util.Tools;

public class DishesLogic {
    
    private static final String TAG = "DishesLogic";
    static SQLiteDatabase db;
    static Bitmap dishImg = null;
    static final String img_path = "/sdcard/Meishijia/img/";
    
    /**
     * 获取菜品种类
     * @return
     */
    public ArrayList<String> getDishClass(Context context, boolean is4Spinner){
        ArrayList<String> class_list = new ArrayList<String>();
        if(is4Spinner){
            class_list.add(context.getString(R.string.all));
        }
        db = DbHelper.getInstance(context, null).getReadableDatabase();
        Cursor cursor = db.query(DbHelper.TABLE_NAME_DISHES,
                                 new String[]{"distinct dish_class"},
                                 null, null,
                                 null, null, "dish_class");
        if(cursor.moveToFirst()){
            do{
                class_list.add(cursor.getString(0));
            }while(cursor.moveToNext());
        }
        db.close();
        cursor.close();
        cursor = null;
        
        return class_list;
    }

    /**
     * 
     * @return    HashMap<String,ArrayList<Dish>> key为种类String,ArrayList为种类下的列表
     */
    public HashMap<String,ArrayList<Dish>> getDishList(Context context) {
        HashMap<String,ArrayList<Dish>> dish_list = 
                                new HashMap<String,ArrayList<Dish>>();
        ArrayList<Dish> dish_list4class = new ArrayList<Dish>();
        Dish dish = null;
        db = DbHelper.getInstance(context, null).getReadableDatabase();
        Cursor cursor = db.query(DbHelper.TABLE_NAME_DISHES,
                                 new String[]{"dish_id","dish_name","price","introduction","dish_class","img_path"},
                                 null, null,
                                 null, null, "dish_class");
        //如果查询结果不为空开始创建List
        if(cursor.moveToFirst()){
            StringBuilder curClass = new StringBuilder(cursor.getString(4));//保存当前类别
//            Log.i(TAG, "Cursor Count:"+cursor.getCount());
            do{
                dish = new Dish();
                dish.setDish_id(cursor.getString(0));
                dish.setDish_name(cursor.getString(1));
                dish.setPrice(Double.valueOf(cursor.getString(2)));
                dish.setIntroduction(cursor.getString(3));
                dish.setDish_class(cursor.getString(4));
                dish.setImg_path(cursor.getString(5));
//                Log.i(TAG, "["+cursor.getPosition()+"]"+dish.toString());
                
             
                if(!cursor.getString(4).equals(curClass.toString())){
                    
                    dish_list.put(curClass.toString(),dish_list4class);
                    
                    curClass.replace(0, curClass.length(), cursor.getString(4));
                    
                    dish_list4class = new ArrayList<Dish>();
                }
                
                dish_list4class.add(dish);
//                Log.i(TAG, "dish_list4class.size="+dish_list4class.size());
            }while(cursor.moveToNext());
            入
            dish_list.put(curClass.toString(),dish_list4class);
        }
        //关闭数据库
        db.close();
        cursor.close();
        cursor = null;
        
        return dish_list;
    }
    
    /**
     * 
     * @return    HashMap<String,ArrayList<Dish>> key为种类String,ArrayList为种类下的列表
     */
    public HashMap<String,ArrayList<Dish>> getDishList(Context context, 
                                                                            String dishClass) {
        //总列表
        HashMap<String,ArrayList<Dish>> dish_list = 
                                new HashMap<String,ArrayList<Dish>>();
        //各个种类列表
        ArrayList<Dish> dish_list4class = new ArrayList<Dish>();
        
        Dish dish = null;
       
        db = DbHelper.getInstance(context, null).getReadableDatabase();
       
        Cursor cursor = db.query(DbHelper.TABLE_NAME_DISHES,
                                 new String[]{"dish_id","dish_name","price","introduction","dish_class"},
                                 "dish_class = ?", new String[]{dishClass},
                                 null, null, "dish_class");
       
        if(cursor.moveToFirst()){
            do{
                //新建菜品Dish实例
                dish = new Dish();
                dish.setDish_id(cursor.getString(0));
                dish.setDish_name(cursor.getString(1));
                dish.setPrice(Double.valueOf(cursor.getString(2)));
                dish.setIntroduction(cursor.getString(3));
                dish.setDish_class(cursor.getString(4));
                //插入种类列表
                dish_list4class.add(dish);
                if(cursor.isLast()){
                    //如果当前是最后一行,则将种类的菜品列表加入到菜品总列表中
                    dish_list.put(cursor.getString(4),dish_list4class);
                }
            }while(cursor.moveToNext());
            
        }
        //关闭数据库
        db.close();
        cursor.close();
        cursor = null;
        
        return dish_list;
    }
    
    /**
     * 通过ID查找
     * @param dish
     */
    public Dish getDishById(Context context, String dishId){
        Dish dish = new Dish();
        
        SQLiteDatabase db = DbHelper.getInstance(context, null).getReadableDatabase();
        Cursor cursor = db.query(DbHelper.TABLE_NAME_DISHES,
                                new String[]{"dish_name", "price", "introduction", "dish_class"},
                                "dish_id=?", new String[]{dishId},
                                null, null, null);
        if(cursor.moveToFirst()){
            dish.setDish_id(dishId);
            dish.setDish_name(cursor.getString(0));
            dish.setPrice(Double.valueOf(cursor.getString(1)));
            dish.setIntroduction(cursor.getString(2));
            dish.setDish_class(cursor.getString(3));
        }
        //关闭游标和数据库实例
        cursor.close();
        db.close();
        
        return dish;
    }
    
    /**
     * 获取图片
     * @param dishId    编号
     * @return            图片Bitmap
     */
    public Bitmap getDishImage(Context context, String dish_imgPath){
        
        //若dishImg不为空,则回收之前的图片
        if(dishImg!=null){
            dishImg.recycle();
        }
        Tools tools = new Tools();
        dishImg = tools.getImgThumb(context, dish_imgPath, 300);
        
        return dishImg;
    }
    
    /**
     * 获取图片缩略图
     * @param dishId   编号
     * @return            图片Bitmap
     */
    public Bitmap getDishThumbImage(Context context, String dishId){
        Tools tools = new Tools();
        return tools.getImgThumb(context, dishId, 150);
    }
    
    /**
     * 回收图片内存
     */
    public void recycleDishImg(){
        if(dishImg!=null){
            dishImg.recycle();
        }
    }
    
    //从网络更新菜单
    public boolean updateMenu(Context context){
        //配置参数
        HashMap<String,String> params = new HashMap<String,String>();
        params.put("num", "1");
        params.put("update", "menu");
        //获取返回Json转成HashMap
        try {
            JsonDecoder decoder = new JsonDecoder();
            HashMap<String,Object> resultMap = decoder.decode2Map(NetLogic.httpGet("/updateServlet", params));
            if(resultMap!=null && resultMap.get("rt").equals("200")){
                ArrayList<Dish> dishList = decoder.jsonArray2dishList(context, (JSONArray)resultMap.get("list"));
                //向SQLite存入数据
                saveDishMenu(context, dishList);
            }
        } catch (JSONException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }

    /**
     * 将列表保存至本地SQLite数据库
     * @param dishList    待保存列表
     */
    private void saveDishMenu(Context context, ArrayList<Dish> dishList) {
        // TODO Auto-generated method stub
        if(dishList != null && dishList.size()>0){
            SQLiteDatabase db = DbHelper.getInstance(context, null).getWritableDatabase();
            db.delete(DbHelper.TABLE_NAME_DISHES, null, null);
            
            ContentValues values = new ContentValues();
            for(Dish dish : dishList){
                Log.i(TAG+".saveDishMenu", dish.toString());
                values.put("dish_name", dish.getDish_name());
                values.put("price", String.valueOf(dish.getPrice()));
                values.put("introduction", dish.getIntroduction());
                values.put("dish_class", dish.getDish_class());
                values.put("dish_unit", dish.getUnit());
                values.put("dish_id", dish.getDish_id());
                values.put("img_path", dish.getImg_path());
                db.insert(DbHelper.TABLE_NAME_DISHES, "dish_id", values);
                //清空参数
                values.clear();
            }
            values = null;
            db.close();
        }
    }
}


© 著作权归作者所有

共有 人打赏支持
粉丝 0
博文 130
码字总数 120077
作品 0
虹口
python—函数实例

1.函数的定义 练习:判断输入的是不是一个数字 #!/usr/bin/env pythondef isNum():sth = raw_input("Please input something: ")try:if type(int(sth)) == type(1):print "%s is a number" ......

huangzp168
2017/12/01
0
0
Java——循环应用

循环练习 练习一:计算1~100之间奇数和的运算 /*计算1~100之间奇数和的运算思路:1、需要定义一个变量来初始化和并记录和,sum 2、计算1~100之间的数需要使用for循环来控制相加的次数 3、需要...

Sweltering
2017/12/12
0
0
SQLServer2012表表达式练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1-1 练习内容:返回每个雇员在orderdate列中的最大值 涉及的表:Sales.Orders 输出的列:empid, maxorderdate 正确结果:9行 练习1...

杰克鹏仔
2016/11/17
24
0
关于顺序表逆置的编程题,代码出现一些错误,求完整解答。

请看这段程序代码,为什么不能成功编译? 求指点更改,谢谢。求详解过程。 题目: 1. 将顺序表逆置,要求用最少的附加空间。 以下为代码: #include #include #include #define LISTINITSIZ...

好树叶
2014/04/12
658
1
开发中遇到的拼凑json的问题,求大神帮忙解决下。

json1={ "styleID": "2", "Type": "ATEST", "StyleName": "单选题", "CptItems": [ { "srcID": 1, "srcName": "强化练习", "sbjID": 2, "sbjName": "强化练习", "TestCount": 17 }, { "srcI......

漂流的河
2016/12/19
396
7

没有更多内容

加载失败,请刷新页面

加载更多

20180925 df与du命令、fdisk磁盘分区

df 命令 disk filesystem的缩写,查看已挂载磁盘的总容量、使用容量、剩余容量信息。 [root@centos01 ~]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/sda3 27...

野雪球
31分钟前
0
0
Shell编程(expect同步文件、指定host和同步文件、构建文件分发系统、批量执行命令)

expect脚本同步文件 需求:自动同步文件 实验准备: A机器:192.168.248.130 B机器:192.168.248.129 实现: 1.A机器编写4.expect脚本文件,内容如下所示: #!/usr/bin/expectset passwd "...

蛋黄_Yolks
57分钟前
2
0
ppwjs之bootstrap颜色:背景颜色

<!DOCTYPT html><html><head><meta http-equiv="content-type" content="text/html; charset=utf-8" /><title>ppwjs欢迎您</title><link rel="icon" href="/favicon.ico" ......

ppwjs
58分钟前
1
0
Ubuntu与 Fedora之对比

大家好。今天我将重点介绍两个流行的Linux发行版之间的一些特性和差异; Ubuntu 18.04和Fedora 28。它们都有自己的包管理; Ubuntu使用DEB,而Fedora使用RPM,但它们都具有相同的桌面环境(GNO...

linuxprobe16
今天
2
0
线性代数入门

线性代数的概念对于理解机器学习背后的原理非常重要,尤其是在深度学习领域中。它可以帮助我们更好地理解算法内部到底是怎么运行的,借此,我们就能够更好的做出决策。所以,如果你真的希望了...

牛奋Debug
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部