Android

【Android基础篇】SQLite数据库的增删改查基本操作

一、概述 SQLite是Android系统的核心数据存储服务之一,它是一个轻型的嵌入式数据库,占用非常少的资源却能提供很好很快的数据存取服务,许多大型的需要数据存储的Android项目都有用到SQLite(也可以用于桌面应用程序)。 下面介绍一下SQLite的创建数据库、表的操作,以及基本的增删改查操作。 二、基本操作API简介 在Android中,SQLiteDatabase类提供了SQLite的底层API,但在使用SQLite数据库时,我们往往不会直接操作SQLiteDatabase这个类,而是自己创建一个继承自SQLitOpenHelper的子类来实现数据库操作。这样做的目的一是为了以后如果数据库升级不至于要改动太多代码,已实现封装;二则是为了我们使用更方便。 1、创建数据库和表 SQLiteOpenHelper是一个抽象类,在这个类里有两个抽象方法,OnCreate和OnUpgrade,前者用于第一次创建数据库,后者用于数据库升级,创建类DBServices如下: public class DBServices extends SQLiteOpenHelper{

  • zgljl2012
6 min read
Android

【Android基础篇】AutoCompleteTextView和MultiAutoCompleteTextView

从名称上可看出来,这两个控件都是用于输入信息的TextView,AutoComplete已表明这两个控件内容输入都是自动完成的。区别在于一个是Multi,允许在一个编辑框里输入多个自动完成的字符串,比如输入多个标签;另一个不是Multi,一个编辑框只允许一个字符串自动完成,比如邮箱地址的补全。具体的区别可通过下面的内容看出来。下面分别介绍着两个控件的使用。 -------------------------------------------------------------------------------- AutoCompleteTextView 功能 动态匹配输入的内容,如搜索引擎在输入框输入信息时,会有一个下拉列表显示与当前输入内容有关的信息。 控件特有属性 如同width、height等属性是控件共有属性,下面介绍AutoCompleteTextView特有的属性: * android:completionThreshold : 此属性用于设置当输入多少字符时控件开始进行自动匹配 * android:completionHint : 设置出现在下拉菜单中的

  • zgljl2012
6 min read
Android

【Android进阶篇】WebView显示网页详解

概述 WebView是Android用于显示网页的控件。通过WebView,我们可以查看本地的网页,也可以查看网络资源。 本文内容如下: 1. 加载本地网页 2. 加载网络资源 3. 在WebView中使用JavaScript和CSS 4. WebChromeClient介绍 5. WebView的其它功能 一、加载本地网页 使用WebView加载本地网页时,需要把网页放到Android项目根目录下assets文件夹下,然后URL为:file:///android_asset/文件。 下面是示例: 1. 首先创建工程,这步简单; 2. 在activity_main界面文件中放好WebView控件,代码如下:

  • zgljl2012
7 min read
区块链

2017-01-15 区块链新闻

今日关键词可视化: 区块链如何革新个人数据存储? [http://www.8btc.com/blockchain-personal-data] 区块链作为比特币背后的基础技术,被人们看成是会完全颠覆商业活动本质的一项新技术。比特币是无政府监管、去中心化、点对点的加密货币,它的第一属性是货币。众所周知,比特币是一种虚拟货币,但比特币的发明者想让... 2017-01-15 19:52:37 关键词:比特币 货币 中心化

  • zgljl2012
1 min read
算法

【算法】普通方法和筛选法求素数

素数指的是因子只有1和本身的数(1不是素数),求解素数在数学上应用非常广泛,而求解n以内的素数也是我们编程时常遇到的问题,在这个问题上,筛选法求解素数运行得非常快。下面首先介绍如何判断一个是不是素数,然后介绍用普通方法求n以内的素数,接着是筛选法求n以内的素数,最后是两种算法的运行时间比较 判断一个数是不是素数 算法思想:判断小于等于一个数的平方的所有大于1的整数是不是能整除这个数,如果能,则表明这个数不是素数;反之,则是素数。 //判断一个数是否为素数 bool isPlain(int value){ int m = sqrt(value); if (value < 2) return false; for (int

  • zgljl2012
3 min read
设计模式

Java动态代理的异常处理问题

今天在使用Java动态代理时出现了一个很棘手的问题,实现类里抛出了一个自定义异常,但外面捕获不到。 虽然使用printStack可以输出调试信息,但通过getMessage获取不到提示,因为项目需求是捕捉到同一种自定义异常的不同异常情况,通过 getMessage获取异常提示反馈给用户,但因为使用了动态代理所以出现了异常捕获不到的情况。 具体原因是因为我们通过动态代理最终捕获到的异常时经过加工了的,也就是捕获的已不再是最开始我们希望抛出的异常,加工抛出的异常有两种: java.lang.reflect.UndeclaredThrowableException java.lang.reflect.InvocationTargetException 经过实验,最终的解决办法为: 在动态代理的方法执行时捕获异常,然后抛出exception.getCause() 这样,就能抛出你所希望抛出的那个异常里。 try{ method.invoke(fun, args); } catch(

  • zgljl2012
1 min read
Java

【Java基础】InputStream 、 InputStreamReader和BufferedReader

在Java中,上述三个类经常用于处理数据流,下面介绍一下三个类的不同之处以及各自的用法。 * InputStream : 是所有字节输入流的超类,一般使用它的子类:FileInputStream等,它能输出字节流; * InputStreamReader : 是字节流与字符流之间的桥梁,能将字节流输出为字符流,并且能为字节流指定字符集,可输出一个个的字符; * BufferedReader : 提供通用的缓冲方式文本读取,readLine读取一个文本行, 从字符输入流中读取文本,缓冲各个字符,从而提供字符、数组和行的高效读取。 下面有三个Demo(Demo访问百度主页获取字节流然后输出)来分别说明三个类的作用: -------------------------------------------------------------------------------- * InputStream package 数据流; import java.io.IOException; import java.

  • zgljl2012
4 min read
nodejs

Node.js转化GBK编码 - iconv-lite

node当使用node获取GBK编码的数据时,nodejs只支持utf-8,node没有提供转换编码的原生支持,有倒是有一个模块iconv能干这个事,但需要本地方法,VC++库的支持。国外有个大牛写了一个纯粹用Javascript解码的模块:iconv-lite,可以实现编码转换,使用方法如下: var http = require("http"); var iconv = require("iconv-lite"); var url = "http://hq.sinajs.cn/list=sh600595"; var req = http.request(url, function(

  • zgljl2012
1 min read
nodejs

【Node.js基础篇】(八)安装Express 3.2框架以及ejs模板

Html模板以及路由文件等服务器必备的功能虽然我们都可以自己实现,但在稳定性、可靠性、全面性方面肯定是有所遗漏的,所以,从今天起,Node的学习就进入了框架学习部分。 > 维基百科: 框架就是制定一套规范或者规则(思想),大家(程序员)在该规范或者规则(思想)下工作。或者说使用别人搭好的舞台来做编剧和表演。 第一个要学习的框架是在Node中被广泛应用的框架——Express。 安装Express 如果你使用的Node开发环境是WebStorm的话,在新建工程的时候可以直接选新建Node工程,它会给你安装好Express框架(但可能模板渲染使用的是jade)。虽然这的确很方便,但还是建议你使用npm包管理工具来安装Express,因为这个工具以后会常用到。我们使用第二个方法安装Express框架,然后使用WebStorm管理文件。 第一步:进入Node的文件夹,打开cmd进入当前页面 输入:npm

  • zgljl2012
4 min read
nodejs

【Node.js基础篇】(七)Node异步编程之事件发射器

事件发射器是Node里除了回调函数外的另一十分重要的异步编程技术。 在MFC等图形界面编程库中,事件发射器是非常常见的,比如,鼠标点击事件,点击了鼠标后,就会触发鼠标点击后的函数——事件发射器触发事件,并且在事件被触发后处理它们。在Node API组件中,如HTTP服务器、TCP服务器等都被做成了事件发射器,所以掌握事件发射器的编程方法,是非常重要的。 使用on添加监听器 步骤: 1. 声明事件发射器类 2. 创建事件发射器对象 3. 使用on添加事件发射器 4. 使用emit发射事件 //事件发射器类声明 var EventEmitter = require("events").EventEmitter; //创建事件发射器 var

  • zgljl2012
2 min read
zgljl2012@gmail.com