文档章节

练习1

 易水寒521
发布于 2015/06/15 16:38
字数 783
阅读 9
收藏 0
点赞 0
评论 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
博文 129
码字总数 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

Java——循环应用

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

Sweltering ⋅ 2017/12/12 ⋅ 0

SQLServer2012表表达式练习

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

杰克鹏仔 ⋅ 2016/11/17 ⋅ 0

关于顺序表逆置的编程题,代码出现一些错误,求完整解答。

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

好树叶 ⋅ 2014/04/12 ⋅ 1

开发中遇到的拼凑json的问题,求大神帮忙解决下。

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

漂流的河 ⋅ 2016/12/19 ⋅ 7

SQLServer2012单表查询练习

表结构与数据:https://github.com/XuePeng87/TSQLV4 练习1 练习内容:编写一个对Sales.Orders表的查询,返回2015年6月的订单 涉及的表:Sales.Orders 输出的列:orderid, orderdate, custi...

杰克鹏仔 ⋅ 2016/11/10 ⋅ 0

工作3年,这样做你就能成为专家

什么是刻意练习 所谓具有某些超强技能的天才,不过是刻意练习的结果罢了。 按照刻意练习的框架:练习—反馈—改进练习—反馈—…。其核心就是,从舒适区走出来,走进学习区,并通过持续的反馈...

anda0109 ⋅ 2016/12/11 ⋅ 0

find 命令基础练习

练习1 查找/tmp下,不是目录,并且还不能是套接字类型的文件find /tmp -not -type d -a -not -type s -ls练习2 /tmp/test 目录下,属主即不是user1 ,也不是user2的文件find /tmp/test -not (...

bruceweng ⋅ 2017/12/06 ⋅ 0

python基础语法

python编程基础概念: 程序: 一组能让计算机识别和执行的指令; 电子计算机:能够执行程序的机器; 冯诺依曼体系架构: CPU由运算器和控制器组成; 运算器:完成各种算术运算,逻辑运算,数...

羽丰1995 ⋅ 2017/09/16 ⋅ 0

我从《刻意练习》一书中学到的东西

看了两个月的刻意练习,终于有点心得,可以将知识变成指导行动的方法了,趁着还热乎,赶紧记下来! 练习,有目的的练习,刻意练习 不知道你有没有这种经历,有些人明明看起来很努力,却一直没...

闪电的蓝熊猫 ⋅ 05/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

两道面试题,带你解析Java类加载机制

在许多Java面试中,我们经常会看到关于Java类加载机制的考察,例如下面这道题: class Grandpa{ static { System.out.println("爷爷在静态代码块"); }} cl...

1527 ⋅ 8分钟前 ⋅ 0

SpringCloud(Data Flow)

dataflow-server

赵-猛 ⋅ 18分钟前 ⋅ 0

深入理解Java虚拟机

这本书我读到第8章,之后就是在读不下去了。 读到后面是一种痛苦的体验,太多的东西是不全面的,大量的专有名词是没有解释的,读到最后很多东西仅仅是一个侧面,所以我觉得,这本书不适合初学...

颖伙虫 ⋅ 23分钟前 ⋅ 0

B树和B+树的总结

B树 为什么要B树 磁盘中有两个机械运动的部分,分别是盘片旋转和磁臂移动。盘片旋转就是我们市面上所提到的多少转每分钟,而磁盘移动则是在盘片旋转到指定位置以后,移动磁臂后开始进行数据的...

浮躁的码农 ⋅ 26分钟前 ⋅ 0

NanoPi NEO core/ Ubuntu16.04单网卡配置3个IP地址(2个静态,1个动态)

配置 root@NanoPi-NEO-Core:/etc/network# cat interfacesauto loiface lo inet loopbackallow-hotplug eth0iface eth0 inet static address 172.31.188.249 netmask 255.......

SamXIAO ⋅ 53分钟前 ⋅ 0

三步为你的App集成LivePhoto功能

摘要:LivePhoto是iOS9新推出的一种拍照方式,类似于拍摄Gif图或录制视频片段生成图片。如果没有画面感,可以联想《哈利波特》霍格沃茨城堡的壁画,哈哈,很炫酷有木有,但坑爹的是只有iphone6S以...

壹峰 ⋅ 今天 ⋅ 0

centos7 git安装

由于centos中的源仓库中git不是最新版本,需要进行源码安装。 1、查看yum仓库git信息 [root@iZm5e3d4r5i5ml889vh6esZ zh]# yum info gitLoaded plugins: fastestmirrorLoading mirror s...

xixingzhe ⋅ 今天 ⋅ 0

input file 重复上传同一张图片失效的解决办法

解决办法 方法一:来回切换input[type='file']的type属性值,可以是‘text’,'button','button'....,然后再切换回来‘file’ 方法二:每次取消图片预览后,重置input[type='file']的value的...

时刻在奔跑 ⋅ 今天 ⋅ 0

Mahout推荐算法API详解

前言 用Mahout来构建推荐系统,是一件既简单又困难的事情。简单是因为Mahout完整地封装了“协同过滤”算法,并实现了并行化,提供非常简单的API接口;困难是因为我们不了解算法细节,很难去根...

xiaomin0322 ⋅ 今天 ⋅ 0

WampServer默认web服务器根目录位置

安装WampServer之后的web服务器根目录默认位置在WampServer安装目录下的www:

临江仙卜算子 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部