开发环境

Android studio 2.3.1

功能描述

  1. 集成多种查询方式,查看本地数据库中危险化学品的信息;
  2. 按照中文拼音和英文首字母,对化学品进行查询;
  3. 按照UN号或者CAS号查询相应的化学品;
  4. 按照化学品特性描述的关键词检索化学品;
  5. 查看产品手册以及使用说明文档;

Github 地址

git@github.com:guoyaohua/Chemicals.git

功能介绍

一、主界面和欢迎界面

程序打开时,会最先进入Welcome界面,此时程序会在后台初始化数据库,对相关工具进行初始化, 初始化结束后,会自动跳转到主界面。

程序包含四大功能模块:

  1. 名称检索
  2. 特性检索
  3. 编号检索
  4. 实用手册
    点击图标即可进入相应功能界面。

二、名称检索

进入名称搜索模块,在搜索框中输入化学品的中文名、中文拼音、英文名,点击查询即可检索到所对应的化学品。

程序具备联想功能,用户可以输入部分化学品名称(包括:中文名、拼音、英文名),点击查询,程序会将数据库中跟关键字相关的化学品都检索出来,例如如果我们想查询到“乙烯”,只需要键入“乙”即可在结果中查询到“乙烯”。

三、编号检索(UN/CAS)

进入编号搜索模块,系统默认展示化学品编号(UN\CAS)搜索框、搜索按钮、UN号、CAS号切换按钮。

搜索框支持UN号、CAS号输入,可通过输入框右下方单选按钮,切换UN/CAS搜索模式。

同样,程序可以自动识别不完整输入,选中切换按钮-UN号检索,此时用户输入化学品的UN号码(以乙酸为例,2789),进行部分输入,输入值“27”,结果列表自动匹配出相应的化学品。

四、特征检索

在特征检索模块,程序提供了强大的模糊搜索功能。

用户只需要在搜索框中输入危化品的特征,或者身处现场时对位置化学品的物理状态,化学气味等特征,键入到搜索框中,程序便会将有相关特性的化学品检索显示出来。

例如:用户可以输入“刺激性气味”这个关键词,程序会检索出所有包含刺激性气味这个属性的危化品。

五、实用手册

在本模块中,程序提供了多种危化品手册,以PDF形式打包在程序中,用户点击图标即可打开相应手册,PDFView模块引用了PDF plug框架,使浏览PDF手册更加流畅,且功能强大,大大节省手机RAM空间。

六、化学品详细信息

在化学品信息的详细页面下,用户可以看到基本信息、理化性质及用途、危险性、应急处置、防护建议、检测方法六个功能类别,此时可以拖动中上部的横向按钮滚动条,也可以横向滑动屏幕,达到功能切换的目的。

基本信息模块包含了化学品名称、英文名、别名、UN号、CAS号、危险货物编号、GHS分类标签的具体信息。整个页面根据化学品的信息量而定,信息量大的情况下,用户可以拖动页面向下滑动,查看全部信息。

理化性质及用途模块包含了化学品理化特性参数、用途等基本信息,整个页面根据化学品的信息量而定,信息量大的情况下,用户可以拖动页面向下滑动,查看全部信息。

危险性类别模块包括危险性类别、燃烧及爆炸危险性、健康危害等详细信息,整个页面根据化学品的信息量而定,信息量大的情况下,用户可以拖动页面向下滑动,查看全部信息。

应急处置模块包含了急救、灭火等详细信息,整个页面根据化学品的信息量而定,信息量大的情况下,用户可以拖动页面向下滑动,查看全部信息。

防护建议模块列出了对从业人员的防护建议。

数据库

一、SQLite数据库

APP中包含的化学品信息保存在本地数据库,在用户下载应用安装包时一并存储在移动终端的存储设备,用户可以在软件更新时查看到最新的完整版本危险化学品信息。
课题用到的Android数据库为Sqlite。Sqlite是android平台的一款轻量级的、嵌入式的、关系型数据库产品,以下是一些主要介绍:

  1. Sqlite通过文件保存数据库,创建的数据库文件默认存在/data/data//databases/的文件夹下,一个文件就是一个数据库。
  2. 一个数据库包含多个表格,一个表格包含不同的字段,字段类型等等,这与SQL数据库相似。
  3. Sqlite记录没有顺序的概念,不存在第一第二类的概念,通过查询获取满足条件的记录。

android平台下操作数据库的相关类:

  1. SQLiteOpenHelper抽象类,用于创建和管理数据库以及版本,需要创建一个子类继承,该类封装了对数据库操作的基本方法,使用方便。
  2. SQLiteDatabase数据库访问了,主要是对数据库的增删改查等常用操作,功能比SQLiteOpenHelper丰富,比如事务管理,分页等等。
  3. Cursor游标类,主要用来返回返回查询记录结果

二、数据库操作示例

数据库文件为db格式,数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,这种数据集合具有如下特点:尽可能不重复,以最优方式为某个特定组织的多种应用服务,其数据结构独立于使用它的应用程序,对数据的增、删、改、查由统一软件进行管理和控制。采用navicat for SQLite软件打开

安装完成之后,进入软件,首先点击“新建连接”

在“新建连接”窗口之中输入“连接名”(可自行命名,如“test”),选择类型“现有的数据库文件”,然后在数据库文件中查找db文件的位置,选项如下图所示

然后即可在软件左侧的栏目中找到刚刚建立的连接名“test”,在“表”中找到对应的表格以及文件信息,

数据库中收录了多达百种危险化学品。下图显示了最新录入情况,

危化品速查APP--Android Project的更多相关文章

  1. MediaPlayer的错误列表速查(android)

    public static final int MEDIA_ERROR_IO Added in API level 17 File or network related operation error ...

  2. mpvue 初体验之改写车标速查小程序

    前文 说到我开发了一个简单的小程序叫做 车标速查(代码以及二维码详见 这里),本文简单讲讲如何将这个小程序转为 mpvue 开发(最终 成果 ) mpvue 官网的 文档 真的是非常简单,不,应该说是 ...

  3. ECLIPSE ANDROID PROJECT IMPORT SUMMARY

    ECLIPSE ANDROID PROJECT IMPORT SUMMARY======================================Manifest Merging:------- ...

  4. Java API 快速速查宝典

    Java API 快速速查宝典 作者:明日科技,陈丹丹,李银龙,王国辉 著 出版社:人民邮电出版社 出版时间:2012年5月 Java编程的最基本要素是方法.属性和事件,掌握这些要素,就掌握了解决实际 ...

  5. 几个较好的SQL速查手册网址

    微软 SQL server 数据库开发手册 数据库设计 Transact-SQL 速查手册 数据库设计 MySQL 中文参考手册速查 结构化查询语言 SQL 学习手册速查 转自:http://www. ...

  6. Markdown速查手册

    之前一直使用简书做笔记,沉浸式的写作环境很棒.然而不知什么时候起,氛围愈发浮躁,软文鸡汤泛滥,离"简"字越来越远. 相比更加喜欢沉稳低调.内涵取胜的博客园.于是乎搬家! 搬家就要丢 ...

  7. The module is an Android project without build variants, and cannot be built

    导入 安卓项目报错 Error:The module 'app' is an Android project without build variants, and cannot be built. ...

  8. 安卓工作室 Android studio 或 Intellij IDEA 美化 修改 汉化 酷炫 装逼 Android studio or Intellij IDEA beautify modify Chinesization cool decoration

    安卓工作室 Android studio 或 Intellij IDEA 美化 修改 汉化 酷炫 装逼 Android studio or Intellij IDEA beautify modify ...

  9. SSM 项目从搭建爬坑到 CentOS 服务器部署 - 速查手册

    SSM 项目从搭建爬坑到 CentOS 服务器部署 - 速查手册 提示: (1)CSDN 博客左边有操作工具条上有文章目录 (2)SSM 指 Spring,Spring MVC,MyBatis Mav ...

随机推荐

  1. java面向对象的三大特性——封装

    封装 封装从字面上来理解就是包装的意思,专业点就是信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节 ...

  2. python_9_集合

    什么是集合? --一种无序,没有重复元素的一种数据类型            -- 形式:   {元素1,元素2,......} 如何把一个列表变成一个集合? --set(列表)            ...

  3. Log4j源码解析--核心类解析

    原文出处:http://www.blogjava.net/DLevin/archive/2012/06/28/381667.html.感谢上善若水的无私分享. 在简单的介绍了Log4J各个模块类的作用 ...

  4. 转-python中的闭包

    出处:http://www.cnblogs.com/ma6174/archive/2013/04/15/3022548.html 记录下 简单说,闭包就是根据不同的配置信息得到不同的结果 再来看看专业 ...

  5. MySQL5.6安装(RPM)笔记

    1. 检查MySQL是否安装,如果有安装,则移除(rpm –e 名称)[root@localhost ~]# rpm -qa | grep -i mysqlmysql-libs-xxxxxxxxxx. ...

  6. Request和Response

    1 简介 web服务器收到客户端的http请求,会针对每一个请求,分别创建一个用于代表请求的request对象和代表响应的response对象. request和response对象既然代表请求和响应 ...

  7. java to kotlin (2) - lambda编程

    前言 Kotlin Note 是我学习kotlin整理笔记向博客,文章中的例子参考了kotlin in action这本书籍,同时我也极力推荐这本书,拥有Java基础的人可以很快的就使用kotlin来 ...

  8. 【转】Linux方向职业分析

    引言: 据了解,Linux普通网络管理人员的月薪大约5000元左右,负责编程的Linux软件工程师月薪大约在8000元到12000元之间,Linux嵌入式软件开发人员的月薪大约在12000元以上. 影 ...

  9. Ubuntu16.04下的2009q3交叉编译工具链的搭建

    环境搭建:    1.下载arm-2009q3.tar.bz2源码.  百度云链接  密码: rbui    2.将arm-2009q3.tar.bz2拷贝到/usr/local/arm(没有该目录就 ...

  10. js基本语法与变量

    1.//声明变量,js是弱类型语言,变量类型声明示没有意义的.变量类型是随时可以变化的.var a = 1;      a = "haha";    a = false;2.注释与 ...