- 博客(24)
- 收藏
- 关注
原创 Activity的启动模式
在实际的项目中,对于不同的Activity我们可以根据它的特点来选择恰当的启动模式。一共有四种,分别为standardsingleTopsingleTasksingleInstance启动模式的设定可以在AndroidManifest.xml中通过给标签来指定 android:launchMode属性来选择。 接下来就让我们一个个来认识这些启动模式。standard作为Activity的
2016-04-19 12:15:57 476
原创 单例模式singleton为什么要加volatile
或者许多的朋友在使用单例模式中会学到双重检查加锁(double-checked locking)的应用。public class Singleton { private volatile static Singleton uniqueInstance; private Singleton(){} public static Singleton getInstance(){
2016-04-04 00:13:19 14013 10
原创 java 异常处理
java的异常处理简单来说有两大好处:第一,如果当前环境不能处理这个环境,就可以将这个问题提交到更高级别的环境中,在那里就将作出正确的决定。第二,就是能够降低错误处理代码的复杂度,如果不使用异常,那么我们就必须检查特定的错误,并在程序中的许多地方去处理它,如果使用异常,那我们就不必在方法调用处进行检查,等待方法调用出现问题后返回我们的结果。而java的异常机制将保证能够捕获这个错误,并且不仅节省
2016-03-25 19:23:48 464
转载 get与post的区别
在进行网络数据传输时,我们有时候会在get与post的选择上产生一些困惑 那我们应该怎么进行选择呢。现在我们就从以下几点来区分从规范的角度来看get是从服务器上获取数据的,post是向服务器传送数据的。get是将表单中的数据按照variable=value的形式添加到action所指向的url后面,并且两者使用“?”进行连接,而各个变量之间使用”&”连接。post是将表单中的数据放在form的
2016-03-25 10:43:44 451
原创 webview访问assets目录下找不到网页
相信很多同学可能会在调用webview的时候出现了这样一个错误,明明路径什么的都对,文章也对,但就是无法访问到assets下的html文件。 比如 show.loadUrl(“file:///android_asset/www/test.html”); 别担心,相信我,如果你在你的文件后面加上后缀html的话,所以的问题都会得到解决。 之前可能是这样的。 但如果你改成这样的
2016-03-20 20:30:09 1838 2
原创 Material Design出现You need to use a Theme.AppCompat theme (or descendant) with this activity
You need to use a Theme.AppCompat theme (or descendant) with this activity问题因为你虽然在Activtiy里写上了extends AppCompatActivity 但却在AndroidManifest.xml里的主题还是默认的主题.AppTheme或者其他不相符合的主题。这就有就挂羊头卖狗肉的问题。 所以我们只要在该ac
2016-03-17 11:11:49 1949
原创 Handler,Looper,MessageQueue三剑客的合作方式
三剑客各自的绝招Handler在消息传递机制里扮演着很重要的角色,它是用来发送消息与处理消息的。MessageQueue则是用来存储Message信息的队列,它采用的是先进先出的方式。Looper则用来负责读取MessageQueue中的Message消息的,在读到消息后再将消息改善给该消息的Handler进行处理。三剑客的关系及合作的方式首先我们来看看Looper的构造器代码private
2016-03-10 11:16:40 433
原创 UI线程安全及Handler消息传递机制
UI线程安全出于性能优化的角度,Android对于UI界面的操作不是线程安全的!这就意味着我们不能多少线程并发地操作UI界面,不然会导致线程安全问题。为了避免出现这样的情况,android制定了一个规定,只有UI线程才能修改Activity里面的UI组件。何为UI线程呢?UI线程也叫主线程(Main Thread),在程序第一次启动后,android就会帮我们自动生成并启动一条线程,这就是主线程,
2016-03-09 16:23:28 624
原创 android,java里的回调方法
在学java或者android的时候,或多或少会遇到一个熟悉的名词:回调函数(callback)。曾经遇到,无耐自己理解不到位,在师兄的介绍与自己翻阅资料后,有了更深一层的理解,特写此篇文章给之前与我有同样困惑的童鞋看看,希望有助大家来理解。回调函数的原理(由于上图更乱,所以用文字代替思路):回调函数就是: 在A类中定义了一个方法,这个方法中用到了一个接口和该接口中的抽象方法,但是抽象方法没有具体的
2016-03-06 21:05:21 460
原创 用xml资源文件自定义属性
在android中,我们经常会在java代码中,或者在xml界面布局代码中使用我们的自定义控件。开发者可以通过自定义自己的控件时继承Android系统提供的view组件,就可以像在使用Android系统提供的view组件时一样,用一些系统中控件的属性来很好地控制View组件中的外观行为。但其实,我们也可以通过自定义自己的控件的属性值,来扩展自定义的属性,继而获得更好的外观控件或者其他的功能。 比如
2016-03-06 14:35:49 636
原创 Activity的四个状态及生命周期
首先,先让我们来了解一下activity的四个状态 Acvive/Running,一个新的Activity启动入栈后,它便会处于屏幕的最前端,处于栈的最顶端,此时就处于可见状态和用户交互。 Paused当Activity被另一个透明或者Dialog样式的Activity覆盖时,它依然与窗口管理器保持连接,系统也继续维护其内部状态,它仍然可见,但它已经失去了焦点故不可与用户交互。 Stopped
2016-03-04 11:20:04 1257 1
原创 样式(Style)与主题(Theme)的自定义
在android中,除了自定义控件外,还提供了样式(Style)与主题(Theme)的自定义,这也给开发者带来了几大好处可以对android应用进行美化,开发出各种风格的android应用可以统一控件EditView等控件与Activtity等组件的风格因为统一风格而且风格的定义都放在同一个目录下,这大大方便了开发者修改风格与定义风格,减少代码的重复,并且有得于后期的维护意识到这些好处后,大
2016-03-02 18:02:43 878
原创 使用原始XML资源保留配置信息或者相关数据资源
在Android中, 有一些数据如配置信息,应用想着的数据资源需要保留,我们可以用原始XML资源来保留。不过,要注意一点的是,在Android Studio中原始XML资源不能直接定义在/res/路径下,会出现存在,在无法在工程目录中找到,并且也无法被应用所使用的情况,所以我们可以建立/res/xml目录,并且创建的时候选择File,类型里面便会有xml文件。这样,我们既可以顺利引用,也可以方便我们
2016-03-02 09:27:48 506
原创 通过定义属性动画资源Property Animation来实现背景色的不断变化
Animator是一个抽象类,他本身就代表了一个属性动画,它拥有 AnimatorSet,ValueAnimator,ObjectAnimator,TimeAnimator等子类,定义属性动画的XML资源文件可以用以下三个元素做为根元素。 分别为< set…/>< objectAnimator…/>< animator…/> 而现在我们就通过自我动手实践来为自己的应用增加一个不断变化的背
2016-03-01 12:12:13 1073 2
原创 AnimationDrawable资源的使用
Android支持的动画包括逐帧动画(就是一张一张图片的切换)补间动画(通过平移、变换计算得到) 下面就由我们来通过补间动画来演示下Android如何通过定义AnimationDrawable资源来定义动画,并用它来进行有趣的动画设计。效果如图所示 AnimationDrawable的XML源文件的根元素为< set…/> 第一步,我们需要在/res/anmi/路径下定义我们好我们的动
2016-02-29 17:34:51 1091 1
原创 ClipDrawable的使用--慢慢展开的图片
ClipDrawable主要的运用用于从其他位图上截取一个“图片片段”。 它在XML的中的根元素为<?xml version="1.0" encoding="utf-8"?><clip xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/ic_launcher"
2016-02-29 12:51:45 656
原创 java里面的标签运用 continue label, break label
众所周知,goto是java的一个保留字,但java却并使用它,所以说java里面没有goto。然而,java其实也提供了另外一个方法来解决类似于跳转的操作。用continue label, break label 随同标签一起使用,它们就会中断循环,而直到标签所在的地方。为了便于理解,可以通过对比来加深理解一般来说,continue会退回到 最内层 循环的开头(顶部),并继续执行。
2016-02-27 21:34:35 5454 2
原创 如何使用== 、!=和equals()来测试对象的等价性
在有些情况下我们很可能会要比较两个基本数值,两个对象是否等价的问题,这时我们就要用到区分== 、!=和equals()。而如何区分== 、!=和equals()的用法还有如何运用它们来解决问题呢?首先,在java中,两个基本类型的比较就直接用 == 和 !=即可。如 int i = 1;System.out.println( 1 == i);答案肯定为 true;而
2016-02-22 00:57:07 401
原创 mac下xampp如何设置成本地与局域网均可访问
默认下的xampp是没有启动局域网访问的,只支持127.0.0.1,而不支持诸如192.168.1.x等的访问,实在不利于本地的调试与小组成员的调试。mac版的xampp可以通过搜索 /Applications/XAMPP/xamppfiles/etc/extra/httpd-xampp.conf找到如图所示改为即将Require local注释掉,而加上Allow
2016-02-17 11:30:31 2097
原创 android studio如何导入android-support-v7-appcompat包
早些时候在开发地图应用的时候,在导入了相关的jar包陆续出现了No resource found that matches the given name 'Theme.AppCompat.Light.DarkActionBar'还有Cannot resolve symbol 'AppCompatActivity'这两个问题,后来在我仔细搜索下,发现这两个问题都是因为我没有导入android-sup
2015-09-07 21:15:14 26147
转载 解决os x版xampp的mysql数据库无法开启的问题
XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建 XAMPP 软件站集成软件包。它可以在Windows、Linux、Solaris、Mac OS X 等多种操作系统下安装使用。可以说,它是一个安装简便,功能强大的开发工具。但就是这样一款好软件,却有时会遇到一个问题。那就是在mac下无法启动它的mysql数据库的功能。难道只能在终端去打开,而无法有一个长久的,可以在操作
2015-08-14 23:45:34 1020
原创 Android Studio快捷键的设置
正所谓工欲善其事,必先利其器,而Android Studio对于广大Android开发者来说,便是这一神器。而如何使得这一神器发挥出更大的威力呢?很显然快捷键设置得好坏,用得是否得心应手便是其中一个重要的因素。因为本人开发用的是mac的,所以所用图都是mac版的,但用windows版的Android Studio道理也类似。首先我们可以通过菜单栏进入keyboard的设置页面。
2015-08-14 17:08:11 675
原创 mac上安装android studio出现Error:compileSdkVersion android-x requires compiling with JDK 7问题
初装android studio的童鞋可能或多或少会存在一些问题,比如出现Error:compileSdkVersion android-x requires compiling with JDK 7的问题,虽然自己已经下载了jdk7或者jdk8但还是提示这样的错误,这是为什么呢?原来我们是我们的 jdk的路径没有设置好或者我们的 idk默认设置成jdk6。所以,我们要让android stu
2015-08-09 22:52:17 2450
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人