自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

原创 checkbox嵌套listview/recyclerview 滑动自动触发setOnCheckedChangeListener 导致 CheckBox错乱 混乱

此方法主要是通过实体类,进行赋值取值来判断 是否选中取消CheckBox在实体类中定义isChoosed (初始值false 未选中)public class ShopGoodsSelectBean {private int shopId;private int position;private boolean isChoosed;public ShopGoodsSelectB...

2020-03-11 16:34:35 735

原创 Android开发-面向对象六大原则

1、单一职责原则单一职责原则的英文名称是Single Responsibility Principle,简称SRP。定义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,一个类中应该是一组相关性很高的函数、数据的封装。举个栗子:ImageLoader(图片加载),功能需求:实现图片加载,并且要将图片缓存起来。原本我们可能会写成:/** * 图片加载类 */publ...

2018-09-12 15:54:51 626 1

原创 Android设计模式-工厂模式

概述工厂模式是一种创建者模式,在任何生成复杂对象的地方都可以使用工厂模式。理论来说在任何使用A a = new A()的方式都可以使用工厂模式,虽然使用工厂模式可能需要多做一些工作,但是在后续的开发和维护都带来了方便。如果我们需要在构建对象的时候,需要做很多的处理工作,比如初始化工作,查询工作等一些耗时的工作,如果我们将这些操作全部放入到构造方法中去写,那么势必在后期维护的带来不方便,而且...

2018-09-07 11:01:02 269

原创 Android设计模式-装饰模式

概述装饰模式定义:动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。如上图所示(截取自《Head First Design Patterns》一书),主要包括四个部分:    1. Component抽象组件,是一个接口或者是抽象类,就是定义我们最核心的对象,也就是最原始的对象。(注:在装饰模式中,必然有一个最基本、最核心、最原始的接口或者抽象类充当...

2018-09-06 19:29:39 237

原创 Android设计模式-Builder模式(建造者模式)

概述将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。举个栗子下面以宠物医院记录宠物狗信息为例//汪汪信息类public class Dog{ private int identifier;//编号 private String name;//名字 private int age;//年龄 private int w...

2018-09-06 18:38:12 224

原创 Android设计模式-单例模式

概述定义:确保某个类只有一个实例,而且自行实例化提供给外部使用。使用场景:某个类型的对象只应该有且只有一个,或者避免创建多个对象消耗过多的资源时。如:访问IO或数据库时要考虑单例模式。N种实现方式及比较饿汉式public class SingleTon { //将构造函数私有化 private SingleTon() { } //创建私有...

2018-09-06 16:22:21 109

原创 Android设计模式-观察者模式

观察者模式在实际项目中使用的也是非常频繁的,它最常用的地方是GUI系统、订阅——发布系统等。因为这个模式的一个重要作用就是解耦,使得它们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI具有易变性,尤其是前期随着业务的改变或者产品的需求修改,应用界面也经常性变化,但是业务逻辑基本变化不大,此时,GUI系统需要一套机制来应对这种情况,使得UI层与具体的业务逻辑解耦,观察者模式此时就派上...

2018-08-30 16:48:21 134

原创 Android-查看隐藏的API源码

在查看Android API源码时,Android.jar内部有大量@hide注解的代码, 无论是用Eclipse还是Android Studio都会隐藏这些代码,因此查看API源码会出现很多错误,基本上都是找不到方法或类字段等等错误,如PhoneWindow,ActivityThread等都找不到。解决方法方法一、去Android SDK源码目录搜索PhoneWindow.java, 用...

2018-08-23 15:13:30 893

原创 Android View事件分发机制之源码解析

上篇文章我们讲了Android View事件分发机制,这篇我们主要说下相关的源码!(为方便阅读,以下都只给出了关键代码并额外添加上一些简单注释,全部代码请自行阅读源码)Activity的dispatchTouchEvent方法点击事件产生最先传递到当前的Activity,由Acivity的dispatchTouchEvent方法来对事件进行分发。那么很明显我们先看Activity的disp...

2018-07-27 13:40:00 280 1

原创 Android View事件分发机制

MotionEvent事件初探我们对屏幕的点击,滑动,抬起等一系的动作都是由一个一个MotionEvent对象组成的。根据不同动作,主要有以下三种事件类型:1.ACTION_DOWN:手指刚接触屏幕,按下去的那一瞬间产生该事件2.ACTION_MOVE:手指在屏幕上移动时候产生该事件3.ACTION_UP:手指从屏幕上松开的瞬间产生该事件从ACTION_DOWN开始到ACTION_U...

2018-07-25 17:02:11 259

原创 Android数据库源码解析

在android中跟SQLite数据库相关的几个大类有SQLiteOpenHelper、SQLiteDatabase、SQLiteConnection、SQLiteSession,本文主要从1.数据库的获取;2.对数据库的CRUP操作;两个方面来分析android数据库运行机制。先概述下这几个类,让大家对它们有个了解;SQLiteOpenHelper封装管理数据库的创造和版本管理类,主要封装了数据...

2018-06-19 17:15:15 1628 1

原创 Android的线程和线程池

说到线程,我想大家都不陌生,因为在开发时候或多或少都会用到线程,而通常创建线程有两种方式:1.继承Thread类;2.实现Runnable接口;虽说这两种方式都可以创建出一个线程,不过它们之间还是有一点区别的,主要区别在于在多线程访问同一资源的情况下,用Runnable接口创建的线程可以处理同一资源,而用Thread类创建的线程则各自独立处理,各自拥有自己的资源。详情可见android创建线程的两...

2018-06-13 13:25:45 212 1

原创 Android消息机制

为什么要有Android消息机制有时候需要在子线程进行耗时的I/O操作,可能是读取文件或者是访问网络等,当耗时操作完成以后需要在UI上做些改变,由于android开发规范的限制,我们并不能在子线程中访问UI控件,否则就会触发程序异常,这个时候通过Handler就可以将更新UI的操作切换到主线程执行。android规定访问UI只能在主线程中进行,如果在子线程中访问UI,那么程序就会抛出异常。View...

2018-06-11 21:20:26 148

原创 Android创建线程的两种方式及比较

一、Android创建线程的方式通常为以下两种:    Java提供了线程类Thread来创建多线程的程序。其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象。每个Thread对象描述了一个单独的线程。要产生一个线程,有两种方法:1.通过继承Thread类本身;2.实现Runnalbe接口; 二、详述1.通过继承Thread类本身;...

2018-06-05 21:06:43 12638 1

空空如也

空空如也

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

TA关注的人

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