7 ShymanZhu

尚未进行身份认证

暂无相关简介

等级
TA的排名 5w+

Android架构组件(三)——ViewModel

Android架构组件(三)——ViewModel上一篇文章讲到了Android架构组件之LiveData(Android架构组件(二)——LiveData),现在我们再来看看另一个成员ViewModel。ViewModel是什么? ViewModel,从字面上理解的话,我们也能想到它肯定是跟视图(View)以及数据(Model)相关的。正像它字面意思一样,它是负责准备和管

2017-12-27 11:44:31

Android架构组件(二)——LiveData

Android架构组件(二)——LiveData上一篇文章讲到了Android架构组件之一Lifecycle组件(Android架构组件(一)——Lifecycle-AwareComponents),现在我们再来看看另一个成员LiveData。定义 简单地说,LiveData是一个数据持有类。它具有以下特点:数据可以被观察者订阅;能够感知组件(Fragment、

2017-12-22 11:35:40

Android 架构组件(一)——Lifecycle

Android架构组件(一)——Lifecycle-AwareComponents有一天“谷歌开发者”官微推送了《正式发布Android架构组件1.0稳定版|附带中文介绍视频》,发现这种架构足够秒杀MVP、MVVM,虽然之前的GoogleI/O大会中也介绍过,但是这次推出是稳定版,而且是可以投入到生产中去。于是就顺着这篇去官网看了使用文档——《GuidetoApp

2017-12-22 11:25:38

如何正确的给ViewGroup设置OnClickListener

在Android的日常开发中,我们总会碰到要给某个LinearLayout、RelativeLayout等设置OnClickListener,以便达到点击其子view能够触发设置的OnClickListener。但是当我们点击子view的时候,对应的Listener并没有触发到,这是为什么呢,接下来我们将结合例子从源码角度去解释它。实例 我们从一个简单的需求出发:有一个Button和一个Text

2016-11-05 10:18:59

ButterKnife 基本使用

ButterKnife基本使用导语在Android的日常开发中,最烦的应该是写一大堆的findViewById()了,偏偏这个还不得不写。总想让工具来解放我们的双手,能有多懒就尽量有多懒,最好能实现人脑和电脑之间通过脑电波传输,然后啪啪啪代码就写好了(或许若干年之后可以实现吧)。有一位叫JakeWharton打大神就带领我们迈进了一步,再也不用写findViewById()了(666666

2016-07-20 20:56:51

深入理解Android 消息机制(一)——综述

在日常开发和学习中,我们肯定都会接触到Android消息机制。我们知道,在非UI线程中不能直接更新UI,一般我们都是在非UI线程中通过Handler发送一条消息来更新UI。通过Handler可以将任务切换到Handler所在的线程中。Android消息机制主要是指Handler的运行机制,Handler的运行需要和MessageQueue和Looper配合才能完成。可能有人会问:我在Activity

2016-06-25 23:38:33

Android Studio导入framework.jar等系统jar包方式

从Eclipse转到AndroidStudio,必经的一个过程就是导入第三方jar包,导入普通的jar包方式比较简单,网上其他的例子也比较多,但是关于导入framework.jar包内容就比较少。有时候开发需要一些依赖framework中隐藏方法的时候,我们可以导入framework.jar,编译的时候依赖framework,打包的时候不打进去,这在eclipse中实现方式比较简单,这里

2016-06-14 20:35:38

深入理解Java ThreadLocal

欢迎转载,转载请注明出处:深入理解JavaThreadLocal!一、定义我们知道多线程环境下访问共享资源的会产生冲突,一般情况下我们可以通过锁机制来限定单个线程访问共享资源,让其他线程等待,但是这种方式会导致阻塞。避免多线程对共享资源访问产生的冲突的根本解决方式就是不共享。Java提供了一种叫做ThreadLocal类,我们称它为线程本地存储,从名称上我们就能看出它不是线程,而是一个存储变量的类

2016-05-29 20:11:52

Java 引用分类:StrongReference、SoftReference、WeakReference、PhantomReference

一,定义在Java中,引用的定义是:如果reference类型的数据中存储的数值代表的是另一块内存的起始地址,就称这块内存代表着一个引用。后面在JDK1.2开始,引用的概念被扩充,引用被分为强引用(StrongReference)、软引用(SoftReference)弱引用、(WeakReference)、虚引用(PhantomReference)。这四种引用的强度关系:强引用>软引用>弱引用>虚引

2016-05-20 23:25:46

带你深入理解Activity启动模式(LaunchMode)

我们知道默认情况下,当我们多次启动同一个activity时,系统会创建多个实例并把他们一个个放入任务栈,当我们按back键,这些activity又会一个个退出。在讲activity的launchmode之前,我们有必要了解下“任务栈(TaskStack)”这个概念。在Android中是使用任务(Task)来管理Activity的,任务就是存放在栈里面的Activity的集合,这个栈就是称为任务栈。

2016-05-10 23:36:21

设计模式——单例模式

上次我们讲到迭代器模式(设计模式——迭代器模式),这次我们来看一个最常用的设计模式——单例模式。单例模式的使用场景很多,比如处理偏好和设置注册表对象、日志对象、对话框等。单例模式是应用最广的设计模式之一,也是很多同学最熟悉的模式,因为它使用简单,很好理解,在一般情况下使用都不会出什么问题。但是如果深入去理解的话,还是会发现有些平时没注意到的问题的,下面就一起学习下巩固下吧。一、定义单例模式:确保一个

2016-05-03 17:04:32

Java集合ArrayList实现原理——源码分析

一,ArrayList简述   ArrayList是实现了List接口的动态数组,动态数组是指它的大小是可变的。ArrayList实现了所有可选列表操作,并允许保存包括null在内的所有元素。ArrayList除了实现List接口,还提供了操作是内部用来存储列表的数组的大小的方法。   每个ArrayList实例都有一个容量(capacity),该容量是用来表示存储元素的数

2016-04-27 17:30:13

设计模式——迭代器模式

上次我们讲了下观察者模式《设计模式——观察者模式》,这次我们来看下迭代器模式。迭代器模式我们自己可能很少直接的使用,但是我们却经常在间接地使用,Java集合类就用到了这个模式,这个可以通过他们的源码来验证。我们知道对容器对象的访问必然会涉及到遍历操作,一般情况下,我们的做法是将遍历的方法封装在容器中,但是这样会带来新的问题:容器类不仅要维护自身内部的数据元素,还要对外提供遍历的接口方法,这样不但

2016-04-26 10:49:19

设计模式——观察者模式

观察者模式是一种非常常见的模式,它最常用在GUI系统和订阅发布系统。像Android系统中的View的各种listener用到的就是观察者模式。使用观察者模式一个重要的原因就是解耦,将被观察者和观察者之间解耦,使得他们之间的依赖减小。一,定义:观察者模式是定义一种一对多的依赖关系,使得当一个对象状态改变时,所有依赖于它的对象都会受到通知,然后依赖于它的对象可以根据需求去做相应的操作。二

2016-04-16 22:45:28

设计模式基础——UML类图

设计模式,UML关系图

2016-04-11 21:12:29

Android--MonkeyRunner的基本使用

先说下背景:DQA总会测出一些难以重现的bug,经常出现“有时出现”、“偶尔出现”等字眼,这种问题真是一万个草泥马跑过啊.....。你不能逮着DQA的人问怎么出现的啊,如何才能出现,一般情况下你得到的回答都是“它就是出现了.....”。好吧,我也不想就那么傻傻的在屏幕上点啊点啊点的,这还不如炒我鱿鱼呢,这种机械的重复的事情应该要从我们这苦逼的程序员手中解除才对。不扯淡了,直入主题:

2015-09-14 15:45:07

Textview 设置selector

先说下要求:碰到一个问题就是如何实现当按下TextView的时候字体能变颜色,松开之后又能恢复原来的颜色。自己开始想到的方法是设置TextView的onTouchListener,当按下时改变字体的颜色,松开时还原自己的颜色。虽然这种方法可以实现我的需求,但是这样代码似乎写的有点臃肿。后面又找到一种新的方法,在这里记录同时分享下:   1,在res/color文件夹中建立te

2015-09-14 15:34:10

Android SharedPreferencs基本使用

SharedPreferences是一种轻量级的数据存储方式,它存储的内容是以键值对方式存储的,类似于map,但是它只能保存基本的数据类型(booleans,floats,ints,longs,andstrings)。SharedPreferences提供的是一种持久化数据保存数据的方式。   得到SharedPreferences对象有两种方法:   1,public

2015-03-01 20:20:14

ListPreference 基本使用

ListPreference的定义:     ListPreference        android:dialogTitle= "@string/machine_type_number"        android:key= "machine_type_number"        android:entries= "array/entries_color

2014-12-04 22:48:50

高亮listView的选中的item

1,首先设置ListView的selector,定义该selector.2,在选中ListView的item项时高亮该item.具体实现方法(以设置应用的heard为例):   1,设置selector,getListView().setSelector(R.drawable. header_list_selector );.定义selector:

2014-11-26 23:18:51

查看更多

勋章 我的勋章
    暂无奖章