自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 资源 (2)
  • 收藏
  • 关注

原创 Android SwipeRefreshLayout 实现下拉刷新

SwipeRefreshLayout实现下拉刷新功能 下拉刷新是一个非常实用的功能,在下拉刷新中,可以进行加载数据,同时通知UI更新数据,非常适合在使用adapter的组件更新数据。 下面通过一个简单的例子来介绍用法这个demo的意思是在下拉刷新时,向adapter中更新数据,刷新结束后,在UI中可以 看到更新的结果. 布局文件中,使用SwipeRefreshLayout包裹要刷新的组

2016-05-30 22:26:31 537

原创 使用Agera,gson,okhttp获取豆瓣读书数据

使用Agera,GSON和okhttp解析数据本文使用的是豆瓣读书的API项目演示:demo下载地址:AgeraDemo实现在线查找图书的功能,整合了okhttp,gson,agera框架API测试 URL格式: URl:https://api.douban.com/v2/book/search?q= 返回数据{ "count":1, "start":0, "tot

2016-05-29 22:27:58 806

原创 Android Agera 框架简单使用

Agera响应式框架Agera框架由google推出,是一个响应式编程的框架 Agera is a set of classes and interfaces to help write functional, asynchronous, >and reactive applications for Android. Requires Android SDK version 9 or hi

2016-05-29 11:11:23 2090

原创 Android CardView 的使用

CardView CardView继承至FrameLayout类,可以在一个卡片布局中一致性的显示内容,卡片可以包含圆角和阴影。CardView是一个Layout,可以布局其他View。CardView的 常用属性card_view:cardElevation 阴影的大小card_view:cardMaxElevation 阴影最大高度card_view:cardBackgroundCo

2016-05-27 16:51:57 572

原创 gson框架的使用

GSON GSON 是Google的一个json解析框架,和传统的json解析相比,有着明显的优势。 关于基本的JSON解析,你可以看下面这篇文章 Android JSON的解析API引入 本文使用的gson-2.3.1.jar基本数据类型和json字符串的转换通过toJson()将基本数据类型转换成json字符串public class Main { publ

2016-05-27 16:04:03 716

原创 okhttp框架的使用

okHttp框架 OKHttp是一款高效的HTTP客户端,支持连接同一地址的链接共享同一个socket, 通过连接池来减小响应延迟,还有透明的GZIP压缩,请求缓存等优势jar包依赖需要添加两个jar包okhttp和对应版本的okio本文使用okhttp3.3 okio1.6GET 方式建立连接Request对象用于建立连接// 首先得有一个OkHttpClient对象OkHttp

2016-05-27 11:44:52 1573

原创 Android RecyclerView 实现瀑布流效果

RecyclerView RecyclerView 是MetrialDesign 的重要一个组件,未来是一定会替代ListView的,RecyclerView结构松散,非常适合自定义。稍后会补上一篇RecyclerView基础的文章。先看效果: 这里的每张图片都有着不同的尺寸,但RecyclerView可以将它们完美的结合在一起,表现形式是不是很美观:-)每个item的布局文件就是一个Ima

2016-05-26 21:32:54 711 1

原创 Android MVP 设计模式

这篇文章参照Hongyang的博客整理。 浅谈 MVP in AndroidMVP设计模式何为MVP1.View 对应于Activity,负责View的绘制以及与用户交互2.Model 依然是业务逻辑和实体模型3.Presenter 负责完成View于Model间的交互Presenter 在这里类似于一个主持人的角色,他负责Model实体类与VIEW表示层的交互,这个交互通常使用接口实现M

2016-05-25 21:08:01 401

原创 SQL数据库设计之维护优化(三)

前面分别介绍了数据库设计的逻辑设计和物理设计阶段,下面我们来了解下数据库建表后的优化问题. 前面两篇文章的链接 SQL数据库设计(一)—需求分析与逻辑设计 SQL数据库设计(二) – 物理设计维护优化对新的需进行建表索引优化大表拆分需要做的工作1. 维护数据字典使用第三方工具对数据库字典进行维护利用数据库本身的备注字段来维护数据字典-- 使用备注字段维护数据字典c

2016-05-25 17:30:04 719

原创 Android 入门项目NoteBook

这两天准备随便写几个Android样例,对于这种简单的项目还是比较熟练的:-),稍后给出github地址,希望一起进步。欢迎大家Fock.Android NoteBook关键技术1.CursorLoader和CursorAdapter实现异步加载数据2.Toolbar的使用3.DrawerLayout和Fragment实现侧滑菜单4.SQLite 存储数据作为一个入门案例就先介绍到这么多了,没有什

2016-05-24 23:49:54 2216

原创 Android JSON 解析

json JavaScript 对象表示法(JavaScript Object Notation)。独立于语言和平台, 比 XML 更小、更快,更易解析。如今JSON数据已经成为了互联网中大多数数据的传递方式,所以必须要熟练掌握。JSON格式详解JSON有三种结构1. JSON对象 JSON对象简单而言便是键值对或名值对,而“值”可以是数值、字符串和布尔类型等。 1. JSON

2016-05-24 23:28:02 395

原创 SQL数据库设计(二) -- 物理设计

今天主要介绍数据库设计的物理设计,上一篇文章已经讲了,数据库设计的需求分析和逻辑设计,如果你没有看到,请点击下面的连接: SQL数据库设计(一)—需求分析与逻辑设计物理设计根据数据库自身的特点把逻辑设计转换成物理设计。1.选择合适的数据库管理系统常见的数据库系统 以MySQL为例,介绍存储引擎 存储引擎 事务 锁粒度 主要应用 忌用 MyISAM(mysql5.5以下

2016-05-23 22:11:47 6531

原创 SQL查询之组合查询

组合查询 SQL允许执行多个查询(多条SELECT语句),并将结果作为一个结果集返回.这些组合查询成为并(union)或复合查询(compound query)有两种情况需要使用组合查询:在一个查询中从不同的表返回结构数据.对一个表执行多个查询,按一个查询返回数据.组合查询一般使用union关键字,或者多条where语句使用多条where语句的查询,也可以看做是组合查询-- 使用unio

2016-05-23 14:56:48 11166

原创 SQL数据库设计(一)---需求分析与逻辑设计

今天先来介绍 数据库设计中的需求分析和逻辑设计(ER图)阶段,明天介绍物理设计与维护优化,数据库设计是非常有意思的:-)数据库设计 根据系统业务的需要,结合我们所选用的DBMS,为这个业务系统构建出最优的数据存储模型。 并建立好数据库中的表结构,以及表与表之间的关联关系的过程.使之能有效的对应用系统中的数据进行存储, 并可以高效的对已经存储的数据进行访问.优良的数据库设计减少数

2016-05-22 21:20:23 28989

原创 SQL之高级联结查询

之前有篇文章介绍了简单的联结查询,现在介绍稍微复杂一点的 联结,如果你没有看过之前的文章,请点击下面的链接。 联结查询和子查询本次示例使用的数据库关系图 SQL联结方式内联结 之前一篇文章已经介绍过内联结了,主要是用于寻找两个表中的相等条件建立联结.内联结又可以分为下面三个方面: 联结方式 定义 等值联结 不进行列名的去重,即此时会有重复的字段.,使用 = 作为联结的条

2016-05-22 00:35:18 505

原创 SQLite数据类型

SQLite 只有五种数据类型 存储类 描述 NULL 数据库中存储的值为NULL INTEGER 其值是一个带符号的整数,根据值的大小存储在1,2,4,6,8字节中 REAL 浮点数,存储8字节的IEEE浮点数 TEXT 值是文本字符串,使用数据库编码存放 BLOB 值是一个二进制数据,完全根据它的输入存放Date 与 Time 数据类型SQLite

2016-05-21 20:15:32 385

原创 Android使用 DrawerLayout实现侧滑

DrawerLayout简介 drawerLayout是Support Library包中实现了侧滑菜单效果的控件,可以说drawerLayout是因为第三方控件如MenuDrawer等的出现之后,google借鉴而出现的产物。drawerLayout分为侧边菜单和主内容区两部分,侧边菜单可以根据手势展开与隐藏(drawerLayout自身特性),主内容区的内容可以随着菜单的点击而变化(这需要使

2016-05-21 17:02:34 745

原创 CursorLoader与ContentProvider结合,实现异步加载

使用CursorLoader和ContentProvider结合,可以实现异步更新数据CursorLoader介绍我们知道,Loader一个抽象的类,用于执行异步加载数据,这个Loader对象可以监视数据源的改变和在内容改变后,以新数据的内容改变UI的展示。 它是一个抽象接口,所有需要实现的Loader功能的类都需要实现这个接口,但是如果需要自己开发一个装载机的话,一般并不推荐继承Loader接口

2016-05-21 09:22:15 1593 1

原创 RSA 加密及算法实现

RSA 加密概述 RSA使用公开密钥密码体制。所谓的公开密钥密码体制就是使用不同的加密密钥与解密密钥,是一种“由已知加密密钥推导出解密密钥在计算上是不可行的”密码体制。 在公开密钥密码体制中,加密密钥(即公开密钥)PK是公开信息,而解密密钥(即秘密密钥)SK是需要保密的。加密算法E和解密算法D也都是公开的。虽然解密密钥SK是由公开密钥PK决定的,但却不能根据PK计算出SK。RSA广泛

2016-05-20 00:29:33 3808

原创 CursorAdpater 从数据库中加载数据

CursorAdpater 继承与BaseAdpter是一个虚类,需自行实现里面的方法。 为ListView和Cursor提供了连接的桥梁.Makes a new view to hold the data pointed to by cursor. 找到ListView的Item组件,可以使用ViewHolder abstract View newView(Conte

2016-05-19 19:55:32 504

原创 Android Loader机制,实现异步加载数据

Loader 从Android3.0开始,Android SDK提供了Loader技术,使用Loader技术可以很容易进行数据的异步加载。Loader 的主要APILoaderManager:可以通过Activity或者的Fragment的getLoaderManager()方法得到LoaderManager,用来对Loader进行管理, 一个Activity或者Fragment只能有一个L

2016-05-18 22:41:47 474

原创 ContentProvider入门

ContentProvider简介多进程的程序之间进行互相通信时,使用ContentProvider可以实现数据的共享,ContentProvider提供的数据可以来自文件,数据库等,通过URI与调用者进行关联. 从这点上看,ContentProvider使应用像一个网站,URI即域名。:-) 在ManiFest文件 中进行声明<!-- antuorities属性表明当期ContentPro

2016-05-18 17:00:53 509 1

原创 IntentService的使用

使用Service需注意 Service 是在主线程中执行的,所以不能再Service中直接执行网络加载等耗时操作,应该开启子线程进行加载。使用IntentService IntentService会自动开起一个工作线程,在此工作线程中执行耗时操作,不会引发ANR异常. IntentService必须重写onHandleIntent(),并在此方法中执行耗时操作. Intent

2016-05-18 15:43:10 331

原创 SQL之视图的使用

视图 视图是虚拟的表,只包含使用动态检索数据的查询。 利用视图可以一次性的编写基础SQL,然后根据需要多此调用。Access不支持视图,MYSQL 5 以后版本支持视图,SQLite只支持只读视图。视图的作用简化复杂的SQL操作,重用SQL语句。使用表的一部分,而不是使用整个表。保护数据,可以授予用户访问表的特定部分的权限,而不是整个表的访问权限。更改显示的数据格式和表示,视图可

2016-05-17 20:33:09 359

原创 Android Service的Binder通信机制

Service 的启动方式使用startService()启动,此时无法实现与启动者的通信,当启动对象结束时,Service仍然会在后台运行,使用stopService()可以停止Service的运行.使用bindService()将启动Service的对象进行绑定,使用unBindService()停止绑定,并且结束运行。现在介绍此方式。Binder对象 Binder对象相当于Servi

2016-05-17 19:39:43 413

转载 Java正则表达式

正则表达式定义了字符串的模式。正则表达式可以用来搜索、编辑或处理文本。正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。Java正则表达式和Perl的是最为相似的。java.util.regex包主要包括以下三个类:Pattern类:pattern对象是一个正则表达式的编译表示。Pattern类没有公共构造方法。要创建一个Patter

2016-05-16 17:18:11 289

原创 Java 序列化机制(二) -- 控制序列化的兼容性

serialVersionUID表示序列化版本简单来说,Java的序列化机制是通过在运行时判断类的serialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID与本地相应实体(类)的serialVersionUID进行比较,如果相同就认为是一致的,可以进行反序列化,否则就会出现序列化版本不一致的异常。(InvalidCastExcep

2016-05-14 22:38:30 1530

原创 SQL查询之联结查询和子查询

联结查询和子查询 通常,我们会将要存储的数据分解,存放在不同的表中,即数据库的表的设计应该满足第三范式,这样做的目的是避免存取重复的数据,保证数据的单一性。 但这会不利于我们进行查询,使用联结查询或者子查询可以弥补这个缺点。本次使用的ER图 子查询 把一个查询的结果作为另一个查询的数据集,这种查询的方式成为子查询 目的: 进行跨表查询。 注意: 使用子查询会严重的影响效率,

2016-05-14 21:49:06 745

原创 SQL查询之分组

SQL查询分组的目的 对数据进行分组统计,比如统计每个班级的人数 一般与聚集函数配合使用. 使用分组可以将数据分为多个逻辑组,对每个逻辑组进行聚集计算,是分组的主要目的.分组使用的关键字 GROUP BY 根据指定的字段进行分组本次代码使用的ER图,数据库以mysql为例 -- 根据供应商的ID进行分组,查找每个供应商提供产品的数目select vend_id, coun

2016-05-12 23:30:16 749

原创 java序列化机制(一)

序列化的目的Serialization(序列化)是一种将对象以一连串的字节描述的过程;反序列化deserialization是一种将这些字节重建成一个对象的过程。一般用于将对象保存在磁盘中或者跨进程通信(网络通信)。序列化APIjava.io.ObjectOutputStream和ObjectInputStream用于对象I/O。要被序列化的对象必须实现Serializable或者Externali

2016-05-11 23:22:04 511

原创 Lintcode二分搜索

Problem StatementFor a given sorted array (ascending order) and a target number, find the first index of this number in O(log n) time complexity.If the target number does not exist in the ar

2016-05-11 15:36:11 373

原创 JDBC连接数据库通用操作

简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。通常使用JDBC获取数据库连接的步骤如下(以MySQL为例):1.使用db.conf配置文件保存数据库配置信息注意配置文件的写法,不能加“”注意配置文件的路径,当期路径为加载类的同级路径JDBC_DRIVER=com.mysql.jdbc.DriverDB_URL=jdbc:mysql://1

2016-05-10 21:57:28 534

原创 PAT 乙级 1007. 素数对猜想 (20)

算法题

2016-05-09 20:06:48 912

原创 Android使用TabLayout实现选项卡

使用TabLayout实现一个选项卡效果,之前一直自定义ViewGroup实现,今天之间用的Google框架,给我的感觉就是方便!先上效果图:内容区域使用的ViewPager,导航条使用的TabLayoutTabLayout在android.support.design包下,使用AS的同学记得先导入下布局使用的线性布局:挺简单的,不多说了。<andr

2016-05-08 20:08:48 3645

原创 算法之穷竭搜索

这两天一直在刷PAT的程序设计题,在基础题中出现最多的就是HASH和穷竭 搜索了 。今天先来整理下穷竭搜索吧。穷竭搜索是将所有的可能性罗列出来,在其中找到答案的方法,我们也称为暴力法或者蛮力法,有时候对算法的时间和空间要求不高时,可以使用这个办法将所有的结果枚举出来,在结果集中寻找到我们想要的答案。一般我们通过DFS或者BFS进行实现,也可以直接使用迭代枚举出结果,直接

2016-05-04 23:23:05 760

原创 Hi 我是Yang, 今天开通了CSDN博客,从现在开始记录点滴吧

之前一直用的Evernote,没有发布过文章,希望这个博客可以一直陪伴着我,见证我的成长。

2016-05-03 14:34:16 462

Genymotion-ARM-Translation.zip

2016-05-23

android-support-v7-appcompat.jar

android-support-v7-appcompat.jar

2016-05-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除