07 2012 档案

摘要:DataOutputStream类提供三个写入字符串的方法: -- public final void writeBytes(String s) //由于JAVA的字符编码是Unicode的,第个字符占两个字节,writeBytes方法只是将每个字符的低字节写入到目标设备中 -- public final void writeChars(String s) //writeChars是将字符的两个字节都写入到目标设备中 -- public final void writeUTF(String str) //writeUTF将字符串按照UTF编码写入到目标设备(其中包括长度)为什么DataInpu 阅读全文
posted @ 2012-07-25 19:33 carbs 阅读(3588) 评论(0) 推荐(0)
摘要:如果想公开自己的数据,那么可有两种办法:1.创建自己的ContentProvider,需要继承ContentProvider类2.如果你的数据和已存在的ContentProvider数据结构一致,可以将数据写到已存在的ContentProvider中 当然前提是获取写该ContentProvider的权限.比如把OA中的成员通讯信息加入到系统的联系人ContentProvider中ContentProvider基础所有ContentProvider都需要实现相同的接口,用于查询ContentProvider并返回数据.也包括增加、修改和删除数据.步骤:1.获得一个ContentResolver 阅读全文
posted @ 2012-07-25 11:12 carbs 阅读(14230) 评论(0) 推荐(0)
摘要:本章讲解 SELECT 和 SELECT * 语句。SQL SELECT 语句SELECT 语句用于从表中选取数据。结果被存储在一个结果表中(称为结果集)。SQL SELECT 语法SELECT 列名称 FROM 表名称以及:SELECT * FROM 表名称注释:SQL 语句对大小写不敏感。SELECT 等效于 select。SQL SELECT 实例如需获取名为 "LastName" 和 "FirstName" 的列的内容(从名为 "Persons" 的数据库表),请使用类似这样的 SELECT 语句:SELECT LastNam 阅读全文
posted @ 2012-07-22 18:48 carbs 阅读(709) 评论(0) 推荐(0)
摘要:读写函数分别如下:Java代码 importjava.io.FileInputStream; importjava.io.FileOutputStream; importjava.util.Properties; publicPropertiesloadConfig(Contextcontext,Stringfile){ Propertiesproperties=newProperties(); try{ FileInputStreams=newFileInputStream(file); properties.load(s); }catch(Exceptione){ e.printStack 阅读全文
posted @ 2012-07-21 12:06 carbs 阅读(267) 评论(0) 推荐(0)
摘要:getSharedPreferences 与 getPreferences 的区别。getSharedPreferences 是Context类中的方法, 可以指定file name 以及 mode。getPreferences是Activity类中的方法,只需指定mode而getSharedPreferences 与getDefaultSharedPreferences的区别自定义的一些偏好设置用getSharedPreferences来获取,例如定义一个loginpref.xml的偏好文件使用SharedPreferences sharedPreferences = getSharedP. 阅读全文
posted @ 2012-07-21 11:59 carbs 阅读(9340) 评论(1) 推荐(0)
摘要:很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/ name>/shared 阅读全文
posted @ 2012-07-21 11:42 carbs 阅读(303) 评论(0) 推荐(0)
摘要:基本的getView写法Java代码public View getView(int position, View convertView, ViewGroup parent) {View view = new View();//通过inflate等找到布局 然后findViewById等 设置各个显示的itemreturn view;}而在ListView滑动的过程中 很容易就会发现每次getView被执行 都会new出一个View对象 长此以往会产生很大的消耗特别当item中还有Bitmap等 甚至会造成OOM的错误导致程序崩溃在看getView提供的参数时 可能已经注意到了 有一个参数Vi 阅读全文
posted @ 2012-07-20 23:09 carbs 阅读(241) 评论(0) 推荐(0)
摘要:在开始实例讲解之前,先引用官方文档中的一段话:Frame动画是一系列图片按照一定的顺序展示的过程,和放电影的机制很相似,我们称为逐帧动画。Frame动画可以被定义在XML文件中,也可以完全编码实现。如果被定义在XML文件中,我们可以放置在/res下的anim或drawable目录中(/res/[anim | drawable]/filename.xml),文件名可以作为资源ID在代码中引用;如果由完全由编码实现,我们需要使用到AnimationDrawable对象。如果是将动画定义在XML文件中的话,语法如下:[html]view plaincopy<?xmlversion=" 阅读全文
posted @ 2012-07-20 23:08 carbs 阅读(439) 评论(0) 推荐(0)
摘要:使用getIdentifier()获取资源Id Java代码 inti=getResources().getIdentifier("icon","drawable",getPackageName()); if(i>0) {Log.i("aa","aa");} else {Log.i("vbv","aa");}int i= getResources().getIdentifier("icon", "drawable", getPac 阅读全文
posted @ 2012-07-20 23:08 carbs 阅读(2253) 评论(0) 推荐(0)
摘要:Android中ContextContext字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过 Context才能识别调用者的实例,比如说Toast的第一个参数就是Context,一般在Activity中我们直接用this代替,代表调用者的 实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Andr 阅读全文
posted @ 2012-07-20 22:04 carbs 阅读(198) 评论(0) 推荐(0)
摘要:构造方法: ShapeDrawable(); ShapeDrawable(Shape s); 作用: 在画布上绘画一些简单的图形,并且管理图形的外观。 public class SampleView extends View { private ShapeDrawable mShapeDrawable = null; public SampleView(Context context) { super(context); } @Override protected void onDraw(Canva... 阅读全文
posted @ 2012-07-20 10:37 carbs 阅读(273) 评论(0) 推荐(0)
摘要:clipRect(float left, float top, float right, float bottom)Intersect the current clip with the specified rectangle, which is expressed in local coordinates.只有在这个区域内的才显示,其他所有内容好像被裁剪掉了一样,不显示。[java]view plaincopypublicvoidonDraw(Canvascanvas){super.onDraw(canvas);/*设置画布的颜色*/canvas.drawColor(Color.BLACK) 阅读全文
posted @ 2012-07-19 21:07 carbs 阅读(853) 评论(0) 推荐(0)
摘要:在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法。onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢?❑ save:用来保存Canvas的状态。save之后,可以调用Canvas的平移、放缩、旋转、错切、裁剪等操作。❑ restore:用来恢复Canvas之前保存的状态。防止save后对Canvas执行的操作对后续的绘制有影响。save和restore要配对使用(restore可以比save少,但不能多),如果restore调用次数比sav 阅读全文
posted @ 2012-07-19 21:03 carbs 阅读(485) 评论(0) 推荐(0)
摘要:在读Android SDK里面的samples里面游戏的时候,很多时候都看到对canvas的save()和restore()运用。 下面是个小程序,使用了这两个方面,使得旋转红色方块的时候,保证蓝色方块不受影响 <IGNORE_JS_OP>2011-4-21 06:26 上传下载附件 (450.05 KB) Java代码package com.ray.test; import android.app.Activity; import android.content.Context; import android.graphics.Canvas; import android.gra 阅读全文
posted @ 2012-07-19 20:28 carbs 阅读(2188) 评论(0) 推荐(0)
摘要:BLOB的含义 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器。 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型。 BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传、下载或者存放到一个数据库)。 根据Eric Raymond的说法,处理BLOB的主要思想就是让文件处理器(如数据库管理器)不去理会文件是什么,而是关心如何去处理它。 但也有专家强调,这种处理大数据对象的方法是把双刃剑,它有可能引发一些问题,如存储的二进制文件过大,会使数据库的性能下降。在数... 阅读全文
posted @ 2012-07-17 16:26 carbs 阅读(327) 评论(0) 推荐(0)
摘要:publicstaticfinalclassContactsContract.RawContactsextendsObjectimplementsBaseColumnsContactsContract.ContactOptionsColumnsContactsContract.RawContactsColumnsContactsContract.SyncColumnsjava.lang.Objectandroid.provider.ContactsContract.RawContactsClassOverviewConstantsfortherawcontactstable,whichcont 阅读全文
posted @ 2012-07-17 09:55 carbs 阅读(1394) 评论(0) 推荐(0)
摘要:ContactsContract是联系人数据提供者和应用程序的契约书,它定义所有支持的Content Provider URI和数据列。 ContactsContract定义了基于联系人信息的扩展性很强的数据库,联系人信息以三层架构的方式被保存。ContactsContract表结构介绍1、ContactsContract.Data 用于保存个人数据,例如电话号码、邮件、手机铃声、即时通讯方式、照片等等2、ContactsContract.RawContacts 用于关联联系人信息与账号,因为有可能手机的联系人信息是从不同的Gmail或者其他地方导入的,为互相区别并方便同步,特引入账号概念。. 阅读全文
posted @ 2012-07-17 09:06 carbs 阅读(1019) 评论(0) 推荐(0)
摘要:Android通讯录查询篇--ContactsContract.Data开篇 正在学习Android,想先找个简单点的东西练习一下,先想到的是通讯录,不过关于手机通讯录方面的资料在我现有的书和视频上都很少看到。没办法只有自己看SDK Docs了。 不管怎么说还是先赞Google的Android Docs,确实很全面,只要你想找就一定能找到你要的东西。不过我感觉想把里面的各个类的关系联系起来还是有点困难,特别是像英文水平过于一般的我,看的那叫个累呀。 好了,还是来说一下正题吧。Android刚开始在通讯录方面好像是提供的Contacts这个类,又在SDK2.0发布后新加了一个Contact... 阅读全文
posted @ 2012-07-16 15:43 carbs 阅读(2771) 评论(0) 推荐(0)
摘要:自Android 2.0(API Level 5)开始,Android平台采用了改进后的Contacts API- ContactsContract,用于管理和集成来自多账户和多数据来源的联系人信息。新的联系人API在android.provider.ContactsContract及相关的类来定义,老的API已经废弃,但仍然可以使用。Contact API的结构和使用方法 和老的API有所不同的是,在新的Contacts API中,联系人数据被安排三个主要的表中:contacts, raw contacts和 data。这种新的结构可以使系统更加容易储存和管理从多个数据源得到的特定的联系人数 阅读全文
posted @ 2012-07-16 11:34 carbs 阅读(8361) 评论(2) 推荐(1)
摘要:Matrix ,中文里叫矩阵,高等数学里有介绍,在图像处理方面,主要是用于平面的缩放、平移、旋转等操作。首先介绍一下矩阵运算。加法和减法就不用说了,太简单了,对应位相加就好。图像处理,主要用到的是乘法 。下面是一个乘法的公式:在 Android 里面, Matrix 由 9 个 float 值构成,是一个 3*3 的矩阵。如下图。解释一下,上面的 sinX 和 cosX ,表示旋转角度的 cos 值和 sin 值,注意,旋转角度是按顺时针方向计算的。 translateX 和 translateY 表示 x 和 y 的平移量。 scale 是缩放的比例, 1 是不变, 2 是表示缩放 1/2 阅读全文
posted @ 2012-07-11 22:43 carbs 阅读(254) 评论(0) 推荐(0)
摘要:1. 禁止屏幕旋转并横屏: <activity android:name=".ClickReadActivity" android:configChanges="orientation|keyboardHidden" android:screenOrientation="landscape"> </activity>2. 在 android 中若要通过程序改变屏幕显示的方向,必须覆盖 setRequestedOrientation() 方法,若要获得屏幕显示的方向,则需要调用 getRequestedOrien 阅读全文
posted @ 2012-07-11 20:41 carbs 阅读(435) 评论(0) 推荐(0)
摘要:1.在应用中固定屏幕方向。 在AndroidManifest.xml的activity中加入: android:screenOrientation=”landscape”属性即可(landscape是横向,portrait是纵向)。OK2.随屏幕旋转时,不重新调用onCreate。当将手机屏幕旋转时,系统会被强制重置启动onCreate方法。1)修改AndroidManifest.xml 在activity属性中加入: android:configChanges=”orientation|keyboardHidden”android:configChanges,这个方法主要是负责列... 阅读全文
posted @ 2012-07-11 20:07 carbs 阅读(854) 评论(0) 推荐(0)
摘要:Android getWindow().setFlags方法//设置窗体全屏getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置窗体始终点亮getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//设置窗体背景模糊getWindow().setF 阅读全文
posted @ 2012-07-11 19:30 carbs 阅读(12245) 评论(1) 推荐(0)
摘要:动态更改屏幕方向……LANDSCAPE与PORTRAITpackage irdc.ex05_22;import android.app.Activity;import android.content.pm.ActivityInfo;import android.os.Bundle;import android.view.Display;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;public class EX05_ 阅读全文
posted @ 2012-07-11 19:29 carbs 阅读(1106) 评论(0) 推荐(0)
摘要:使用MaskFilterMaskFilter类可以为Paint分配边缘效果。对MaskFilter的扩展可以对一个Paint边缘的alpha通道应用转换。Android包含了下面几种MaskFilter:BlurMaskFilter指定了一个模糊的样式和半径来处理Paint的边缘。EmbossMaskFilter指定了光源的方向和环境光强度来添加浮雕效果。要应用一个MaskFilter,可以使用setMaskFilter方法,并传递给它一个MaskFilter对象。下面的例子是对一个已经存在的Paint应用一个EmbossMaskFilter:Java代码1.//设置光源的方向2.float[ 阅读全文
posted @ 2012-07-11 17:00 carbs 阅读(1000) 评论(0) 推荐(0)
摘要:最近学习Api文档,打开Android.graphics.Bitmap类里有一个内部类Bitmap.Config类,在Bitmap类里createBitmap(int width, int height, Bitmap.Config config)方法里会用到,打开个这个类一看枚举变量public static final Bitmap.Config ALPHA_8public static final Bitmap.Config ARGB_4444public static final Bitmap.Config ARGB_8888public static final Bitmap.Con 阅读全文
posted @ 2012-07-11 14:04 carbs 阅读(503) 评论(0) 推荐(0)
摘要:所谓自定义控件(或称组件)也就是编写自己的控件类型,而非Android中提供的标准的控件,如TextView,CheckBox等等.不过自定义的控件一般也都是从标准控件继承来的,或者是多种控件组合,或者是对标准控件的属性进行改变而得到的自己满意的控件.自定义控件可能会有很多种方法,这里只介绍我要介绍的方法.在这种方法中,大概的步骤是这样的1.我们的自定义控件和其他的控件一样,应该写成一个类,而这个类的属性是是有自己来决定的.2.我们要在res/values目录下建立一个attrs.xml的文件,并在此文件中增加对控件的属性的定义.3.使用AttributeSet来完成控件类的构造函数,并在构造 阅读全文
posted @ 2012-07-11 11:38 carbs 阅读(318) 评论(0) 推荐(0)
摘要:Android 系统为每个新设计的程序提供了/assets目录,这个目录保存的文件可以打包在程序里。/res 和/assets的不同点是,android不为/assets下的文件生成ID。如果使用/assets下的文件,需要指定文件的路径和文件名。下面这个例子,显示如何访问/assets下的内容。 在文件中/assets 中建立/image子目录,将/res/drawable下的icon.png子目录拷贝到该目录中。在/assets子目录中建立readme.txt文件,文件中输入文本“hello,world!!!”。布局文件:main.xml<?xml version="1.0 阅读全文
posted @ 2012-07-11 10:13 carbs 阅读(464) 评论(0) 推荐(0)
摘要:在点击选项菜单(OptionsMenu:点击menu弹出的菜单)的菜单项时即调用了onMenuItemSelected 也调用了onOptionsItemSelected ,于是疑惑他们有什么不一样。然后再看上下文菜单(ContextMenu:长按控件时弹出。例如在长按EditTextView时弹出输入的法选择菜单),点击上下文菜单的菜单项时即调用了onMenuItemSelected 也调用了onContextItemSelected ,于是问题就明朗了。在父Activity的onMenuItemSelected 方法中判断如果是选项菜单就走onMenuItemSelected ,如果是上下 阅读全文
posted @ 2012-07-10 21:03 carbs 阅读(3166) 评论(0) 推荐(0)
摘要://==================快捷键:设置了快捷键后,在选项菜单已经弹出的情况下,可以通过按快捷键的方式直接选择需要的菜单项。下面的3个方法都可以设定快捷键: 1)设置数字快捷键:setNumericShortcut(char numericChar) 2)设置数字和字符快捷键:setShortcut(char numericChar,char alphaChar); 3)设置字符快捷键:setAlphabeticShortcut(char alphachar)短标题:当标题太长有可能显示不全时,可以用短标题代替,用MenuItem调用setTitleCondensed(CharSe 阅读全文
posted @ 2012-07-10 21:01 carbs 阅读(6214) 评论(0) 推荐(3)
摘要:应用系统中最常见的组织功能的方式之一就是菜单。 Android系统中有两种菜单:OptionMenu和ContextMenu. OptionMenu就是点击Menu按钮时显示的菜单(在3.0以后的版本,可能没有Menu按钮,而是由一个Action Bar). ContextMenu是指用户长时间按住屏幕时显示的Menu(在3.0以后的版本中,Android推荐使用ActionMode).以我们的餐馆系统为例,在餐馆列表界面,我们需要两种菜单。当用户点击菜单按钮时,需要显示[新建]这个菜单,在用户长时间按住某个餐馆时,我们要显示一个Context菜单。这个Context菜单包括[新建],[编辑] 阅读全文
posted @ 2012-07-10 19:01 carbs 阅读(3641) 评论(0) 推荐(2)
摘要:http://www.iteye.com/topic/1122056android开发过程会经常使用XML文件,下面提供小实例,看看XmlResourceParser类是怎么样解析XML文件的。XML文件名称为test.xml。内容如下:Xml代码 <?xmlversion="1.0"encoding="utf-8"?><resources><customername="luopeng"age="21"gender="1"emial="dylankeepm 阅读全文
posted @ 2012-07-09 23:00 carbs 阅读(4979) 评论(0) 推荐(0)
摘要:1,Intent的基础用法Intent是android中各activity之间通信的一个很重要的类,一般我们是这么使用的?1//创建一个intent?123456789101112131415161718192021222324Intent intent = new Intent(); //压值进intent中 //intent是基于一种基于Map的数据结构 //传我们的基本数据类型的可以之间key,value方式传值 intent.putExtra("hello","Hello world"); //但是,传一个对象的时要注意,该对象要实现序列化窗口才 阅读全文
posted @ 2012-07-08 14:41 carbs 阅读(229) 评论(0) 推荐(0)
摘要:AndroidActivity 跳转 都知道用startActivity(Intent)但是如果下面情况呢?Activity1 跳转到 Activity2 但是还需要在Activity2 再回到 Activity1呢? 可能有人说: 那我在Activity2 再使用 startActivity() 不就可以了 是的 但是 startActivityForResult() 能够直接完成这项工作[示例]Activity1: 有2个EditText 用于接收用户输入的2个字符串 要求把这2个字符串连接起来 我现在把连接的工作交给 Activity2 来做 并且把连接好后的字符串再返回给 Activi 阅读全文
posted @ 2012-07-08 14:22 carbs 阅读(280) 评论(0) 推荐(0)
摘要:http://www.cnblogs.com/limingblogs/archive/2011/10/09/2204866.html今天自己简单的总结了listActivity和ExpandableListActivity二者的简单用法。 首先,先说一下listActivity的用法: ListActivity是一个绑定到一个数据源,并且用来显示这一串数据的Activity。ListActivity拥有一个listview对象来实现数据源的绑定与显示,通常会是一个array或者一个拥有查询结果的cursor.ListActivity本身有一个默认的layout,其中包含一个全屏的lis... 阅读全文
posted @ 2012-07-08 11:39 carbs 阅读(6511) 评论(0) 推荐(3)
摘要:人事部门是这样阅读简历的(+15分)如果简历中说到了和工作职位相符的技能超过5次以上。 (+8分)如果简历中说到了和工作职位相符的技能3次到5次。 (+4分)如果简历中说到了和工作职位相符的技能1次到2次。 (+4分)Cover Letter(“求职信”或“自荐信”)提到了招聘人员。 (+2分)简历中有Cover Letter(求职信)。 (-10分)没有提到和职位描述相关的技能。 (-15分)没有受过大专教育。 程序员是这样阅读简历的(+15分)曾经因为好玩而写过操作系统或编译器。 (+12分)简历被LaTeX编译过。 (+11分)为开源软件贡献过代码。 (+9分)上学的时候曾经写过操作系统 阅读全文
posted @ 2012-07-08 09:24 carbs 阅读(307) 评论(0) 推荐(0)
摘要:一、基础知识一个Activity可以启动另一个Activity,即便是定义在不同应用程序中的Activity。例如,假设你想让用户显示一些地方的街景。而这里已经有一个Activity可以做到这一点,因此,你的Activity所需要做的只是在Intent对象中添加必要的信息,并传递给startActivity()。地图浏览将会显示你的地图。当用户按下BACK键,你的Activity会再次出现在屏幕上。对于用户来说,看起来好像是地图浏览与你的Activity一样,属于相同的应用程序,即便是它定义在其它的应用程序里,并运行在那个应用程序的进程里。Android通过将这两个Activity保存在同一个 阅读全文
posted @ 2012-07-07 14:44 carbs 阅读(1438) 评论(0) 推荐(0)
摘要:1.在res/values下创建attrs.xml[html]view plaincopy<declare-styleablename="MyRadioButton"><attrname="str"format="string"/></declare-styleable>MyRadioButton为组件名字,随意起,attr标签定义组件的属性,name对应的是属性名,format是属性的类型,具体可参见《[Android]attrs.xml文件中属性类型format值的格式》。2.在自定义的组件中使 阅读全文
posted @ 2012-07-06 22:05 carbs 阅读(3228) 评论(0) 推荐(0)
摘要:http://blog.csdn.net/larryl2003/article/details/6919513ImageView的Scaletype决定了图片在View上显示时的样子,如进行何种比例的缩放,及显示图片的整体还是部分,等等。设置的方式包括:1. 在layout xml中定义android:scaleType="CENTER"2. 或在代码中调用imageView.setScaleType(ImageView.ScaleType.CENTER);接下来,将对ScaleType的值和对应的显示效果用最直观的方式——真图演示的方法,来进行说明。首先,是测试使用的原始 阅读全文
posted @ 2012-07-06 21:58 carbs 阅读(233) 评论(0) 推荐(0)
摘要:刚刚开始接触android线程编程的时候,习惯好像java一样,试图用下面的代码解决问题Java代码 new Thread( new Runnable() { public void run() { myView.invalidate(); } }).start(); 然而发现这样是不行的,因为它违背了单线程模型:Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行。查阅了文档和apidemo后,发觉常用的方法是利用Handler来实现UI线程的更新的。下... 阅读全文
posted @ 2012-07-06 08:47 carbs 阅读(1805) 评论(0) 推荐(0)
摘要:http://zxl-ong.iteye.com/blog/744809第一种:继承TabActivity,从TabActivity中用getTabHost()方法获取TabHost。只要定义具体Tab内容布局就行了. xml布局:Java代码 <FrameLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent">& 阅读全文
posted @ 2012-07-05 22:02 carbs 阅读(232) 评论(0) 推荐(0)
摘要:package com.google.tabhost;import android.app.TabActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.widget.TabHost;public class HelloTabHost extends TabActivity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) 阅读全文
posted @ 2012-07-05 21:57 carbs 阅读(3345) 评论(0) 推荐(0)
摘要:JDK中关于Random的构造函数叙述如下:public Random()创建一个新的随机数生成器。此构造方法为随机数生成器的种子设置某个值,该值与此构造方法的所有其他调用所用的值完全不同。public Random(long seed)使用单个 long种子创建一个新随机数生成器:public Random(long seed) { setSeed(seed); }next 方法使用它来保存随机数生成器的状态。 参数:seed - 初始种子。 另请参见: Random的setSeed(long)public void setSeed(longseed)使用单个 long 种子设置此随机数生成 阅读全文
posted @ 2012-07-05 18:20 carbs 阅读(517) 评论(0) 推荐(0)
摘要:BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及GridView等UI显示组件,它是继承自接口类Adapter,1、Adapter类简介1)、Adapter相关类结构如下图所示:自定义Adapter子类,就需要实现上面几个方法,其中最重要的是getView()方法,它是将获取数据后的View组件返回,如ListView中每一行里的TextView、Gallery中的每个ImageView。 2)、Adapter在Android应用程序中起着非常重要的作用,应用也非常广泛,它可看作是数据源和 阅读全文
posted @ 2012-07-05 15:32 carbs 阅读(206) 评论(0) 推荐(0)
摘要:从2002开始接触Java学会HelloWorld这么经典的程序到如今不知不觉已经十年啦,十年中亲耳听到过不少大牛的演讲,见到过项目中的神人在键盘上运指如飞的编程速度,当时就被震撼了。当编程越来越成体力活,我们还能有自己的思想,还能修炼为Java系统级别的程序员嘛?学习与修炼以下知识与技能,帮你早日达成愿望。一:Java语言学习对线程(thread),串行化,反射,网络编程,JNI技术,容器(Map,List, Iterator), 类加载器(ClassLoader),输入输出流,垃圾回收机制, 有比较深入的了解,最起码做过项目应用。有过Java项目的性能优化经验,最起码掌握一种性能监视工具的 阅读全文
posted @ 2012-07-05 11:12 carbs 阅读(238) 评论(0) 推荐(0)
摘要:首先看一段程序:package testOverLoadandoverRide;public class A extends B{//下面的是方法的覆盖(overRiding)public void riding(){System.out.println("this is overRiding ");}//下面两个函数是方法的重载(overLoading),但是返回值类型不同,可以运行public String loading(int x){System.out.println("this is overLoading return String");r 阅读全文
posted @ 2012-07-05 09:45 carbs 阅读(4479) 评论(0) 推荐(0)
摘要:Hashtable 和 HashMap 做为 Map 的基本特性 两者都实现了Map接口,基本特性相同 - 对同一个Key,只会有一个对应的value值存在 - 如何算是同一个Key? 首先,两个key对象的hash值相同,其次,key对象的equals方法返回真 内部数据结构 Hashtable和 阅读全文
posted @ 2012-07-04 23:10 carbs 阅读(16062) 评论(2) 推荐(4)
摘要:用Map.Entry 和Map.entrySet() 遍历哈希表偶然今天发现HashMap 用到下面的格式 ,直接循环遍历整个hashMap hashTable返回的 set 中的每个元素都是一个 Map.Entry 类型。private Hashtable<String, String> emails = new Hashtable<String, String>();// 方法一: 用entrySet()// Iterator it = emails.entrySet().iterator();// while(it.hasNext()){// Map.Entry 阅读全文
posted @ 2012-07-04 22:39 carbs 阅读(1500) 评论(0) 推荐(0)
摘要:map,set,list,等JAVA中集合解析 在JAVA的util包中有两个所有集合的父接口Collection和Map,它们的父子关系: java.util +Collection 这个接口extends自 --java.lang.Iterable接口 +List 接口 -ArrayList 类 -LinkedList 类 -Vector 类 此类是实现同步的 +Queue 接口 +不常用,在此不表. +Set 接口 +SortedSet 接口 -TreeSet 类 -HashSet +Map 接口 -HashMap 类 (除了不同步和允许使用 null 键/值之外,与 Hashtabl. 阅读全文
posted @ 2012-07-04 22:37 carbs 阅读(1497) 评论(0) 推荐(1)
摘要:我好土,真的。学用了四五年的JAVA,还从没用过 wait/notify,也不清楚它跟synchronized 关键字 相比有什么好处。今天查了些资料,终于明白了:wait/notify 机制是为了避免轮询带来的性能损失。 为了说清道理,我们用“图书馆借书”这个经典例子来作解释。 一本书同时只能借给一个人。现在有一本书,图书馆已经把这本书借了张三。 在简单的synchrnozed 同步机制下,李四如果想借,先要去图书馆查看书有没有还回来。李四是个心急的人,他每天都去图书馆查;而张三看书看得慢,过了半个月才把书还回来,结果李四在这半个月里全都白跑了,浪费了不少交通车费 而如果使用wai... 阅读全文
posted @ 2012-07-04 21:57 carbs 阅读(349) 评论(0) 推荐(0)
摘要:在java里提到clone技术,大家可能很快就会想到java.lang.Cloneable这个接口。大家可能都知道:所有具有clone功能的类都有一个特性,那就是它直接或间接地实现了Cloneable接口。但是仔细一翻看Cloneable接口的源码发现一个方法都没有。其实子类实现Cloneable接口,相当于一个标示:既在jvm的方法区中存放了想具有clone功能的类(子类)实现了的接口列表,如果接口列表中含有java.lang.Cloneable这个值,jvm将调用类中的clone();显然clone()必须重写自所有java类的祖宗类Object的这个方法;这个我们从Object类中clo 阅读全文
posted @ 2012-07-04 21:27 carbs 阅读(299) 评论(0) 推荐(0)
摘要:与普通程序不同的是,Java程序(class文件)并不是本地的可执行程序。当运行Java程序时,首先运行JVM(Java虚拟机),然后再把Java class加载到JVM里头运行,负责加载Java class的这部分就叫做Class Loader。 JVM本身包含了一个ClassLoader称为Bootstrap ClassLoader,和JVM一样,BootstrapClassLoader是用本地代码实现的,它负责加载核心JavaClass(即所有 java.*开头的类)。另外JVM还会提供两个ClassLoader,它们都是用Java语言编写的,由BootstrapClassLoa... 阅读全文
posted @ 2012-07-04 21:13 carbs 阅读(2272) 评论(0) 推荐(0)
摘要:当垃圾回收器将要释放无用对象的内存时,先调用该对象的finalize()方法。如果在程序终止之前垃圾回收器始终没有执行垃圾回收操作,那么垃圾回收器将始终不会调用无用对象的finalize()方法。在Java的Object祖先类中提供了protected 类型的finalize()方法,因此任何Java类都可以覆盖finalize()方法,在这个方法中进行释放对象所占的相关资源的操作。 Java虚拟机的垃圾回收操作对程序完全是透明的,因此程序无法预料某个无用对象的finalize()方法何时被调用。另外,除非垃圾回收器认为程序需要额外的内存,否则它不会试图释放无用对象占用的内存。换句话说,以下情 阅读全文
posted @ 2012-07-04 19:19 carbs 阅读(289) 评论(0) 推荐(0)
摘要:ListView是 Android中经常会使用的东西,绑定数据对于初学者来说,尤其是刚接触编程的人来说,往往会觉得很难理解,我上大二的时候学的java,但是基本上相 当于没有学,什么都没写过,真正接触编程就是开始上手学android,把这些记录下来,自己可以回头看下,也可以让新手更好的理解。高手绕过....Android中Adapter我是这么理解的,是数据和视图之间的桥梁,数据在adapter中做处理,然后显示到视图上面。Adapter有很多种,有ArrayAdapter<T>, BaseAdapter, CursorAdapter, HeaderViewListAdapter, 阅读全文
posted @ 2012-07-04 18:13 carbs 阅读(203) 评论(0) 推荐(0)
摘要:java.util.Scanner是Java5的新特征,主要功能是简化文本扫描。这个类最实用的地方表现在获取控制台输入,其他的功能都很鸡肋,尽管Java API文档中列举了大量的API方法,但是都不怎么地。一、扫描控制台输入这个例子是常常会用到,但是如果没有Scanner,你写写就知道多难受了。当通过new Scanner(System.in)创建一个Scanner,控制台会一直等待输入,直到敲回车键结束,把所输入的内容传给Scanner,作为扫描对象。如果要获取输入的内容,则只需要调用Scanner的nextLine()方法即可。 /** * 扫描控制台输入 * * @author leiz 阅读全文
posted @ 2012-07-04 09:12 carbs 阅读(17142) 评论(0) 推荐(0)
摘要:在android系统中,我们可以通过在xml资源文件中定义布局,一般的写法是: 包括自定义view在内的所有View均可以在layout文件中指定布局参数。 1.先说android:layout_width/android:layout_height (1)每一个View必须要定义的两个属性是lay 阅读全文
posted @ 2012-07-03 23:21 carbs 阅读(77148) 评论(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 阅读(2156) 评论(0) 推荐(0)
摘要:资源是你在代码中使用到的并且在编译时被打包进你的应用程序的附加文件。Android支持多种不同的文件,包括XML、PNG和JPEG文件。XML文件的格式决定于其描述的内容。这些文件将描述文件支持的类型、语法或格式。处于加载效率的考虑,资源被从代码中分离出来,而且XML文件被编译进二进制代码中。字符串,类似的会被压缩存储为更经济的格式。处于这样或那样的原因,Android平台中会存在很多不同的资源和资源定义文件。这些文件包括以下部分:*资源o创建资源o使用资源§在代码中使用资源§引用资源§引用主体属性§使用系统属性o更改资源o资源引用o术语表*国际化(l1 阅读全文
posted @ 2012-07-02 23:27 carbs 阅读(1892) 评论(0) 推荐(0)
摘要:大家好,今天给大家详解一下Android中Activity的生命周期,我在前面也曾经讲过这方面的内容,但是像网上大多数文章一样,基本都是翻译Android API,过于笼统,相信大家看了,会有一点点的帮助,但是还不能完全吃透,所以我今天特意在重新总结一下. 首先看一下Android api中所提供的Activity生命周期图(不明白的,可以看完整篇文章,在回头看一下这个图,你会明白的):Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码:view plaincopy to clipboardprint?publicclass Activit. 阅读全文
posted @ 2012-07-02 23:25 carbs 阅读(181) 评论(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 阅读(163) 评论(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 阅读(1723) 评论(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 阅读(28137) 评论(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 阅读(698) 评论(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 阅读(239) 评论(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 阅读(151) 评论(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 阅读(171) 评论(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 阅读(508) 评论(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 阅读(3915) 评论(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 阅读(418) 评论(0) 推荐(0)
摘要:序列化机制只保存对象的类型信息,属性的类型信息和属性值,和方法没有什么关系,你就是给这个类增加10000个方法,序列化内容也不会增加任何东西简单来说序列化就是一种用来处理对象流的机制,所谓对象流也就是将对象的内容进行流化,流的概念这里不用多说(就是 I/O),我们可以对流化后的对象进行读写操作,也可将流化后的对象传输于网络之间(注:要想将对象传输于网络必须进行流化)!在对对象流进行读写操作时 会引发一些问题,而序列化机制正是用来解决这些问题的!问题的引出:如上所述,读写对象会有什么问题呢?比如:我要将对象写入一个磁盘文件而后再将其读出来会有什么问题吗?别急,其中一个最大的问题就是对象引用!举 阅读全文
posted @ 2012-07-01 10:37 carbs 阅读(209) 评论(0) 推荐(0)