- 浏览: 499570 次
- 性别:
- 来自: 福州
最新评论
-
xy_feng_zhi_chao:
多谢楼主分享
Android中使用styles -
michaelye1988:
soldier93 写道无关素质,我只发表自己的看法!既然你发 ...
如何在window上把你的项目提交到github -
soldier93:
无关素质,我只发表自己的看法!既然你发表了博客我就有权对其评价 ...
如何在window上把你的项目提交到github -
michaelye1988:
soldier93 写道laji 素质真低
如何在window上把你的项目提交到github -
soldier93:
laji
如何在window上把你的项目提交到github
文章列表
在开发中经常在更多页面中用到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的基本使用
- 博客分类:
- 存储
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的理解
- 博客分类:
- android之我见
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客户端研究
通过对OsChina的Android客户端的代码分析,从里面抠出程序的主框架。下面是效果图:
这个框架和我想的不一样,它还是很不错的。因为它的页面可以通过左右滑动和底部按钮进行切换。这点很值得借鉴。如果通过Android提供的控件。能够支持左右滑动的,有ViewPager。但是ViewPager有一点不好,就是不能让它取消左右滑动。界面切换在3.0以后加入了Fragment,这也是Google推荐的做法,但是这也存在一个问题,Fragment不支持左右滑动切换界面。可以说鱼和熊掌不可得兼。那么今天我整理出的这个框架就能很好的解决这个问题。
下面简要分析下框架的布局 ...
在《大话设计模式一书中》组合模式的定义为:
“将对象组合成树形结构以表示‘部分-整体’的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。
”
即:让View和ViewGroup使用起来具有一致性,用户使用 ...
remove @Override 错误
- 博客分类:
- Eclipse
当工程导入的时候,有时候会出现这个错误,只要把@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 ...