`
文章列表
在开发中经常在更多页面中用到WebView来显示一个网页,这个网页里面放有下载地址或者链接到别的网页等等。 效果如下:       这个示例很简单,代码中都有注释。下面直接上代码:   public class MainActivity extends Activity { private static final String URL = "http://demo.91yong.com/mobile/moreApp.jsp?type=2"; private WebView wvShow; private ProgressBar pbLo ...
SharedPreferences是Android提供的很方便的一种保存小数据的方式。 它能够保存一些基本类型的数据,包括int,boolean,等等,当然也包括String,这个对象类型。     我们通常可以用这个类来保存用户的基本信息,比如软件中常用的用户名密码,标记用户是否第一次打开软件等等。 下面是一个很简单的例子:实现保存用户输入的内容     /** * 通过SharedPreferences来保存用户的私有数据 * * */ public class MainActivity extends Activity { public sta ...
什么是模板方法模式:     在一个方法中定义一个算法的骨架,将一些步骤延迟到子类中去实现,模板方法可以在不改变算法结构的情况下,重新定义算法中的某些步骤。   模板方法把不变的行为搬到了父类中,去除了子类中重复的代码,实现了代码的复用。有的时候我们会遇到一系列步骤构成的过程需要执行,这个过程从高层次上看是相同的,但是有些步骤的实现可能不同,这个时候就应该考虑模板方法模式了。   比如我们要做两道菜:一道是肉末炒茄子,一道是西红柿炒蛋。   肉末茄子的做法是: 1.热锅 2.放油 3.放入肉末和茄子 4.炒5分钟   西红柿炒蛋的做法是: 1.热锅 2.放油 ...
什么是命令模式:     将请求(命令)封装为对象,实现将“发出请求的对象”与“接收和执行这些请求的对象”分隔开来   命令模式中有几个关键的概念:   客户:发起请求的对象,开关,或者你(因为开关是由你来控制的) 命令:具体的一个命令,比如开灯命令,关灯命令 执行者:接收和执行请求的对象,比如电灯,是开灯关灯命令的接收者和执行者 调用者:通过这个对象来实现客户(开关或你)和执行者(电灯)之间的耦合   命令模式支持撤销。对于这个demo来说,开灯这个命令对应的撤销就是关灯。同理:关灯命令对应的撤销就是开灯。 LightOnCommand.java文件可以看到这一点,我 ...
什么是观察者模式: 定义了对象之间的一对多依赖,这样一来,当主题对象改变状态时,它的所有依赖者都会收到通知并自动更新。 这就好比订阅报纸,我们知道出版社每天都要出版报纸(主题Subject),如果你(观察者Observer)订阅了报纸,那么出版社一旦出版了报纸,就会给每个订阅过报纸的用户派发一份报纸。如果你不想要了,随时可以取消订阅,那么下次出版社就不会派发报纸给你了,就这么简单。     设计原则:为了交互对象之间的松耦合设计而努力。即主题和观察者之间的松耦合。     这里先了解下两个概念: 主题 Subject ,也叫Observable ,可观察者 ...
在开发中我们一定不能避免使用Log类,但是这个类存在一个问题就是,当你在程序中使用了大量的Log,那么在程序开发完毕的时候,这将是一个问题,因为,你需要将所有的Log记录注释掉(当然,你不注释也是可以的)。那么有没有方便的方法来处理呢? 我们可以写一个类,将Log类包装起来,使用一个boolean来控制所有的Log记录的显示。   比如这样: MyLog.java: public class MyLog { public static final boolean isDebug = true;//这里控制所有Log的显示情况 public static void e(S ...
关键字: Throwable, Exception, Error, Runtime Exception, unChecked Exception, Checked Exception, throw, throws, try, catch, finally   我们先看看类图:     首先你需要明白,这些都是类,是对象,就和其它的对象没有两样,你可以为它定义方法,当然,这些方法的目的是为捕获异常而提供额外的信息,这也是我们使用异常的目的。特别是Throwable,我以前一直以为这是一个接口。   Throwable: 正如这个类的名字所蕴含的意思一样, ...
什么是单例模式:     确保一个类只有一个实例,并提供一个全局访问点。 注意:使用起来类似静态方法,但是它不是静态方法,而是类。需要new关键字来实例化。     单例模式的基本使用方式可以概括为3个步骤: 1.创 ...
什么是装饰者模式:     在java中,如果你希望扩展现有类的功能,那么你一定首先想到的是继承现有类(至少我是这样),那么装饰者模式可以让你不使用继承,一样扩展现有类的功能,且不需要对现有类进行修改,让你多了一种扩展现有类的功能的选择。     设计原则   对扩展开发,对修改关闭。     java.io包内的大量的类都是装饰者,下面这张图就一目了然了       这张图来自http://prowl.iteye.com/blog/477100我为了图个方便就不去自己画了,对原作者表示感谢。 它的原始出处应该是来自Head First Design Patt ...
什么是策略模式:         针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换。       应当由客户端自己决定在什么情况下使用什么具体策略模式。       策略模式不适合于处理同时嵌套多于一个算法的情形。   针对的设计原则:   封装变化的。 多用组合,少用继承。 针对接口编程,不针对实现编程。   优缺点:   优点: 1. 提供了管理相关的算法族的办法。 2. 提供了可以替换继承关系的办法。 3. 可以避免使用多重条件转移语句。    缺点: 1. 客户端必须知道所有的策略类,并自行决定使用哪一个策 ...
这个是我从山岭巨人的博文中转载过来的: http://www.cnblogs.com/playing/archive/2011/10/12/2208274.html   我觉得这个很适合刚开始学习Android的同学。可以给你起到一个指导思想的作用。当你不知道该如何学习的时候,当你觉得无聊的时候,想看看Api的时候,不妨可以从中选一个来看看。个人认为熟悉下面这些个类的使用,Android算是上路了。   在Android 类库中,各种包写成android.*的方式,重要包的介绍如下: android.app:         提供高层的程序模型、提供基本的运行环境。 an ...
Context   翻译成中文大概是:“上下文,背景”的意思。 这是一个抽象类,这个类的具体左右是什么呢?   Api文档是这样描述的: Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up- ...
通过对OsChina的Android客户端的代码分析,从里面抠出程序的主框架。下面是效果图:       这个框架和我想的不一样,它还是很不错的。因为它的页面可以通过左右滑动和底部按钮进行切换。这点很值得借鉴。如果通过Android提供的控件。能够支持左右滑动的,有ViewPager。但是ViewPager有一点不好,就是不能让它取消左右滑动。界面切换在3.0以后加入了Fragment,这也是Google推荐的做法,但是这也存在一个问题,Fragment不支持左右滑动切换界面。可以说鱼和熊掌不可得兼。那么今天我整理出的这个框架就能很好的解决这个问题。   下面简要分析下框架的布局 ...

组合模式

在《大话设计模式一书中》组合模式的定义为: “将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 ” 即:让View和ViewGroup使用起来具有一致性,用户使用 ...
当工程导入的时候,有时候会出现这个错误,只要把@Override去掉就可以了。但是这样做麻烦。引起的原因参考:   http://stackoverflow.com/questions/3735661/bug-with-override-annotations-in-eclipse     This is most likely because you are switching between Java 1.5 and Java 1.6. In 1.5 you couldn't mark interface implementations with @Override, but yo ...
Global site tag (gtag.js) - Google Analytics