摘要: 在android系统中,我们可以通过在xml资源文件中定义布局,一般的写法是: 包括自定义view在内的所有View均可以在layout文件中指定布局参数。 1.先说android:layout_width/android:layout_height (1)每一个View必须要定义的两个属性是lay 阅读全文
posted @ 2012-07-03 23:21 carbs 阅读(77003) 评论(0) 推荐(3) 编辑
摘要: 许多编程人员都会认为,Android Timer的实现方法比较简单,其实真正的草率做起来并非如此。我们在这里就为大家介绍一下这方面的相关知识。Android手机操作系统是一款基于Linux平台的开源手机操作系统。对于编程人员来说,修改这一操作系统的方法应该很容易就可以掌握。不过中间还是有许多细节需要我们注意。比如写惯java的人可能会认为Android Timer的使用应该如下:程序功能很简单:10秒后,SetTitle为“hear me?”,然后,实际上这样做是不行的,这跟Android的线程安全有关!Java代码packagecom.ray.test; importjava.util.Ti 阅读全文
posted @ 2012-07-03 22:23 carbs 阅读(2146) 评论(0) 推荐(0) 编辑
摘要: 资源是你在代码中使用到的并且在编译时被打包进你的应用程序的附加文件。Android支持多种不同的文件,包括XML、PNG和JPEG文件。XML文件的格式决定于其描述的内容。这些文件将描述文件支持的类型、语法或格式。处于加载效率的考虑,资源被从代码中分离出来,而且XML文件被编译进二进制代码中。字符串,类似的会被压缩存储为更经济的格式。处于这样或那样的原因,Android平台中会存在很多不同的资源和资源定义文件。这些文件包括以下部分:*资源o创建资源o使用资源§在代码中使用资源§引用资源§引用主体属性§使用系统属性o更改资源o资源引用o术语表*国际化(l1 阅读全文
posted @ 2012-07-02 23:27 carbs 阅读(1867) 评论(0) 推荐(0) 编辑
摘要: 大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助,但是还不能完全吃透,所以我今天特意在重新总结一下. 首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的):Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码:view plaincopy to clipboardprint?publicclass Activit. 阅读全文
posted @ 2012-07-02 23:25 carbs 阅读(168) 评论(0) 推荐(0) 编辑
摘要: The way to do this is to create your own subclass of android.app.Application, and then specify that class in the application tag in your manifest. Now Android will automatically create an instance of that class and make it available for your entire application. You can access it from any context usi 阅读全文
posted @ 2012-07-02 21:25 carbs 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 近期对android里面控件修改做了很多实验,由于公司需求很多,不得不重写很多控件。程序目标无非是:高效、轻巧、清晰、标准化 完成动态加载Layout有两种方法,依据个人喜好进行选择:方法1:静态主Layout动态加载静态子Layout首先构建子Layout:main2[xhtml]view plaincopy<?xml version="1.0" encoding="utf-8"?> <!--布局可以任意定义,此处拿线性布局举例,里面有2个按钮元素--> <LinearLayout xmlns:android=" 阅读全文
posted @ 2012-07-02 19:56 carbs 阅读(1714) 评论(0) 推荐(0) 编辑
摘要: int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。 int indexOf(int ch, int fromIndex) 从指定的索引开始搜索,返回在此字符串中第一次出现指定字符处的索引。 int indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。 int indexOf(String str, int fromIndex) 从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 例如:String name="Hi Mary, Mary quite contrary"; name.ind 阅读全文
posted @ 2012-07-02 08:39 carbs 阅读(28114) 评论(0) 推荐(1) 编辑
摘要: 1. 由 基本数据型态转换成 String String 类别中已经提供了将基本数据型态转换成 String 的 static 方法 也就是 String.valueOf() 这个参数多载的方法 有下列几种 String.valueOf(boolean b) : 将 boolean 变量 b 转换成字符串 String.valueOf(char c) : 将 char 变量 c 转换成字符串 String.valueOf(char[] data) : 将 char 数组 data 转换成字符串 String.valueOf(char[] data, int offset, int count) 阅读全文
posted @ 2012-07-02 08:09 carbs 阅读(687) 评论(0) 推荐(0) 编辑
摘要: Scanner是SDK1.5新增的一个类,可是使用该类创建一个对象.Scanner reader=new Scanner(System.in);然后reader对象调用下列方法(函数),读取用户在命令行输入的各种数据类型:next.Byte(),nextDouble(),nextFloat,nextInt(),nextLin(),nextLong(),nextShot()上述方法执行时都会造成堵塞,等待用户在命令行输入数据回车确认.例如,拥护在键盘输入12.34,hasNextFloat()的值是true,而hasNextInt()的值是false. NextLine()等待用户输入一个文本. 阅读全文
posted @ 2012-07-02 07:42 carbs 阅读(222) 评论(0) 推荐(0) 编辑
摘要: import java.util.Arrays;import java.util.Iterator;import java.util.LinkedList;import java.util.List;public class Test { public static void main(String[] args) { String[] strs = { "1" ,"2"}; List l = Arrays.asList(strs); List ll = new LinkedList(l); //这里如果没有这句话,而直接使用l.remove()则会产生 阅读全文
posted @ 2012-07-02 07:14 carbs 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 迭代for each语句是由iterator实现的,正如你所说,他们的不同之处就在于remove()方法上。一般调用删除方法都是集合的方法,例如:List list = new ArrayList();list.add(...);list.remove(...);但是,如果在循环的过程中调用集合的remove()方法,就会导致循环出错,例如:for(int i=0;i<list.size();i++){ list.remove(...);}循环过程中list.size()的大小变化了,就导致了错误。所以,如果你想在循环语句中删除集合中的某个元素,就要用迭代器iterator的remove 阅读全文
posted @ 2012-07-01 23:16 carbs 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 1 import java.util.Arrays; 2 import java.util.Iterator; 3 import java.util.List; 4 public class T 5 { 6 public static void main(String[] args) { 7 String[] strs = { "1" }; 8 List l = Arrays.asList(strs); 9 try {10 l.remove(0);11 } catch (Exception ex) { 12 ex.printStackTrace(); 13 } try {1 阅读全文
posted @ 2012-07-01 23:12 carbs 阅读(497) 评论(0) 推荐(0) 编辑
摘要: =============Arrays工具类=================Arrays:用于操作数组工具类,里面定义了常见操作数组的静态方法。常见的有:二分查找。排序。将数组变成字符串。int[] arr = { 4, 1, 5, 8, 2, 9 };System.out.println(Arrays.toString(arr));// 输出 原始数组 [4, 1, 5, 8, 2, 9]// 对arr进行排序,默认是从小到大。Arrays.sort(arr);System.out.println(Arrays.toString(arr));// 输出 排序[1, 2, 4, 5, 8, 阅读全文
posted @ 2012-07-01 16:58 carbs 阅读(3903) 评论(0) 推荐(0) 编辑
摘要: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动数据。ArrayList 和LinkedList是两个集合类,用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String 或者Integer。那么ArrayList和LinkedList在性能上有什么差别呢?什么时候应该用ArrayL 阅读全文
posted @ 2012-07-01 14:13 carbs 阅读(403) 评论(0) 推荐(0) 编辑
摘要: 序列化机制只保存对象的类型信息,属性的类型信息和属性值,和方法没有什么关系,你就是给这个类增加10000个方法,序列化内容也不会增加任何东西简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是 I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时 会引发一些问题,而序列化机制正是用来解决这些问题的!问题的引出:如上所述,读写对象会有什么问题呢?比如:我要将对象写入一个磁盘文件而后再将其读出来会有什么问题吗?别急,其中一个最大的问题就是对象引用!举 阅读全文
posted @ 2012-07-01 10:37 carbs 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 一、Intent 作用 Intent 是一个将要执行的动作的抽象的描述,一般来说是作为参数来使用,由Intent来协助完成Android各个组件之间的通讯。比如说调用startActivity()来启动一个activity,或者由broadcaseIntent()来传递给所有感兴趣的BroadcaseReceiver, 再或者由startService()/bindservice()来启动一个后台的service.所以可以看出来,intent主要是用来启动其他的activity 或者service,所以可以将intent理解成activity之间的粘合剂。 要在不同的activity之间传递数 阅读全文
posted @ 2012-06-30 20:59 carbs 阅读(2506) 评论(0) 推荐(0) 编辑
摘要: //举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理。//目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A//先看 A.java 的相关代码//-- A.java --// /* * 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果 */ //启动B Intent bintent = new Intent(A.this, B.. 阅读全文
posted @ 2012-06-30 20:48 carbs 阅读(256) 评论(0) 推荐(0) 编辑
摘要: Activity是android系统的三大组件之一,他可以跨进程去调用别的进程中的activity。1.前提:被调用的activity必须是共享的。在电话拨号器的例子中,ntent callIntent = new Intent(Intent.ACTION_CALL, Uri.parse("tel:12345678"));startActivity(callIntent);执行完这些代码后,该应用程序就会去调用系统的拨号功能,实现拨号。其实系统的拨号功能也是有一个activity实现的,系统把这个activity共享了,给他注册了一个id号叫做:android.intent 阅读全文
posted @ 2012-06-30 19:45 carbs 阅读(4408) 评论(2) 推荐(0) 编辑
摘要: 如有错漏请不吝拍砖指正,转载请注明出处,非常感谢 桌面便签软件是android上常用软件的一种,比如比较早的Sticky Note,就曾非常流行,Sticky Note的介绍可以参见 http://www.tompda.com/c/article/11778/而实际上使用android平台对widget开发的支持,桌面便签类软件是非常易于开发的。本文通过逐步实现一个简单的桌面便签软件,和大家分享进行widget开发的过程和方法。1.MyNote的最终实现效果为了提起大家阅读本文的兴趣,先介绍一下最终实现的效果。首先可以通过桌面增加我们的MyNote小部件,如下图所示:图中的“我的便签”就是我们 阅读全文
posted @ 2012-06-30 18:19 carbs 阅读(587) 评论(0) 推荐(0) 编辑
摘要: 大家好,这篇文章我将教大家如何在Windows环境下下载Android源码,Android 自2007年11月5号发布以来,发展速度如此之快,和它走开源的路是分不开的。我们在开发中有什么不明白不清楚的,直接把Android 源码下下来研究就可以了,看源代码将会让你提升很快!在这之前大家先熟悉俩个代码版本管理工具SVN,以及Git。SVN(Windows环境下最常用的):svn(subversion)是近年来崛起的版本管理工具,是cvs的接班人。目前,绝大多数开源软件都使用svn作为代码版本管理软件。Git:Git 是用于 Linux 内核开发的版本控制工具。与常用的版本控制工具 CVS, Su 阅读全文
posted @ 2012-06-30 18:16 carbs 阅读(2888) 评论(0) 推荐(0) 编辑