Handler源码分析
Android
中使用 Handler
来进行消息的处理,它是
- Handler意思是处理者,它是android特有的用来消息处理的一个类。使用它可以解决很多android中常见的问题.
- Handler体现的是一种消息的发送与处理异步进行的机制,消息发送时即刻返回,将消息加入队列中,另一端looper负责循环取出消息进行操作。
- 需要注意的是Handler可以发送Message也可以发送Runnable对象。但是消息处理必定是在Handler所在的线程中,也就是说UI线程中的Handler发送的消息也是在UI线程中执行,所以同样不能执行耗时操作。
ArrayList源码分析
开始看源代码了才知道android和java的源代码有好多出入,我把java和android源码比较了一下,相似的还是多的。我是以android源码为主,因为感觉android比较繁琐,不同的地方会贴java的代码对比。
java真的设计的很好,很多类内部实现差别很大,但是在外部看起来是一样的,比如LinkedList和ArrayList,设计良好的API使我们不需要去关注内部的实现,举个例子说,我们需要一个绳子,他可以是真丝制成的,那么它比较坚固,也可以是牛皮制成的,那么它可以不怕水,但是对使用绳子的人来说,他声明自己需要的绳子需要具有什么样的特性,但是他却不知道真丝的需要什么工艺,牛皮的又需要什么工艺。我们程序员就是使用绳子的人,各种各样的List就是绳子,虽然内部实现大相径庭,但是都对外开放了一条绳子的外表,使得我们可以极为方便的使用它,这体现了面向对象的编程思想,也可以使java程序员更加专注的实现功能而不尽量少的关心逻辑和算法。
ListView Adapter 3
前言
上一篇文章介绍了如何进行分类适配,虽然比较完美的实现了分类适配以及复用,但是代码相当繁琐,我们有两种类型时已经出现了多层if嵌套,如果有三四种类型,估计自己都要转晕了,而且就像我们对单类型适配器抽象时做的,避免重复代码!如果没看过上一篇,建议浏览一下,这里写的很多都是基于第一篇的。
抽象Vi
...
ListView Adapter 1
前言
介绍一下适配器的抽象,在我们做项目的时候会有很多很多地方使用ListView,也就意味着需要写很多很多的适配器,当我们写的项目很大时就会很烦很烦,每次都要写同样的代码片实现类似的功能,所以我们就有必要对传统的适配器抽象一下。
传统适配器的优化写法
核心代码就是getVIew()方法,在里面我
...
ListView Adapter 2
前言
在使用适配器为ListView填充数据时,数据类型往往不是单一的,单一的数据显示太单调,对数据格式要求也比较高,我们在项目中往往使用网络请求获取json数据然后将其显示在Item中,此时获取的数据类型可能会有两到三种格式,此时就用到了分类适配,使用分类适配可以更加友好显示ListView。
...
RecyclerView
RecycerView 是 Design 包下的新控件,用来实现列表功能,相比原来的 ListView 和 GridView 要强大的多,并且有自动回收复用的机制,已经可以完全替代原先的列表控件了。
借助 LayoutManager 实现列表的展示方式,支持水平方向和垂直方向,支持列表、网格和瀑布
...
自定义控件—继承ViewGroup
前言
继承ViewGroup是自定义控件的一般方法,根据需要选择需要继承的ViewGroup的子类,本章将使用纯代码添加控件,方式确实不直观,但是可以用来练习使用代码操作控件的方法,毕竟不是所有的代码都可以用xml文件代替。
案例介绍
这次的目的实现一个类似这样的组合控件,出现这种需求是因为需要在
...