- 博客(45)
- 资源 (47)
- 收藏
- 关注
原创 Service
<br /><br />Service的声明周期方法比Activity要少一些,只有onCreate、onStart、onDestory。有两种方式启动Service<br />1、通过startService启动<br />此时,service启动的时候会经历onCreate-->onStart的过程,Service停止的时候直接进入销毁过程(onDestory)。而如果是调用者自己直接退出而没有调用stopService,Service会一直在后台运行。直到下次调用者再启动起来,并明确调用stopSer
2010-07-31 22:20:00 709
原创 ContentProvider
Android程序的主要4部分:1、Activiyt2、Broadcast Intent Receiver3、Service4、Content Provider一个ContentProvider类实现了一组标准的方法接口,从而能够让其他的应用保存或读取此ContentProvider的各种数据类型。下面列举一些常用的接口:1、query(Uri uri,String[]
2010-07-31 22:19:00 11810 14
原创 Broadcast Receiver介绍
<br /><br />不管是系统的Intent还是其他程序广播的Intent,如果想接收并且对其处理的话,都必须注册一个 Broacast Receiver,并且一般要给注册的这个Broadcast Receiver设置一个Intent Filter来制定当前的BroadCast Receiver是对哪些Intent进行监听。<br />实现一个BroadCast Receiver:<br />我们可以通过继承Broadcast Receiver类,并重写onReceiver方法来实现,如:<br />p
2010-07-31 22:19:00 1737
原创 Android系统默认的布局方式
<br /><br />项目当中自己定义的布局方式可以通过R.layout.xxx访问。Android系统提供了许多默认的布局方式,通过android.R.Layout.XXXX来进行访问。如针对Listview有如下几种布局方式:<br />1、android.R.Layout.simple_list_item_1:每一项只有一个TextView<br />2、android.R.Layout.simple_list_item_2:每一项只有两个TextView<br />3、android.R.Layo
2010-07-31 22:17:00 3384
原创 SimpleAdapter
<br /><br />也是ListAdapter的直接子类。通过SimpleAdapter可以让ListView里面每一项的内容更加人性化,通常将ListView中某项的布局信心写在一个XML文件中。<br />SimpleAdapter的作用是作为ArrayList和ListView的桥梁。需要注意的是,这个ArrayList里面的每一项都是一个Map<String,?>类型。<br />SimpleAdapter的构造函数:<br />public SimpleAdapter (Context con
2010-07-31 22:17:00 1991 2
原创 ArrayAdapter
<br /><br />是ListAdapter的一个直接子类。为数组适配器,是作为一个数组和ListView之间的桥梁。可以将数组里面的数据一一显示在ListView里面。<br />public void onCreate(Bundle savedInstanceState) {<br />super.onCreate(savedInstanceState);<br />// setContentView(R.layout.main);<br />String[] data = new String[]
2010-07-31 22:16:00 450
原创 我的围脖
<br /><iframe width="350" height="550" class="share_self" frameborder="0" scrolling="no" src="http://service.t.sina.com.cn/widget/WeiboShow.php?uname=%E5%B0%8F_%E6%A0%91&width=350&height=550&skin=2&isTitle=1&isWeibo=1&isFans=1&fansRow=2"></iframe>
2010-07-29 01:17:00 530
转载 LayoutInflater
这一节讲的是LayoutInflater的使用,在实际开发种LayoutInflater这个类还是非常有用的,它的作用类似于 findViewById(),不同点是LayoutInflater是用来找layout下xml布局文件,并且实例化!而findViewById()是找具体xml下的具体 widget控件(如:Button,TextView等)。为了让大家容易理解我做了一个简单的Demo,主布局main.xml里有一个TextView和一个Button,当点击Button,出现 Dialog,而这个D
2010-07-27 22:59:00 812 1
原创 优秀网站
<br />据说月薪过了6000的应届生,都知道这些网站 1.邦客网:www.bincl.com一个免费的优质课程中介平台、课程涵盖了IT、语言、职业资格、网络教育等领域、为求职和想升职的朋友量身订制课程、轻松拿优惠。2.有途网:www.youtowork.com一个极为专业的求职服务网站,由美国华尔街海归精英创建,擅长简历代写、面试指导、职业规划、猎头服务等,帮助求职者提高竞争力,成功找到工作,所有上班族都很喜欢。3.湿脚网:www.wetfeet.com 网站当然不是关于脚的,而是辅助职场人士做职业决
2010-07-27 12:49:00 532
原创 startActivityForRequest(Intent , int)
<br /><br />用这个方法启动Intent的话,当新的Activity运行结束的时候,还需执行原Activity里的回调函数,这个函数叫做onActivityResult().<br />第一个参数是要启动的Intent,第二个参数是一个整型的请求码。如果请求码大于0,当新的Activity结束的时候,这个请求码被返回到onActivityResult()的参数里边。通过不同的请求码使得在Activity的回调函数onActivityResult()中针对不同的Activity的返回值进行不同的代码
2010-07-27 12:10:00 601
原创 Tab
<br /><br />首先在布局文件中配置几个TextView,作为某个Tab的内容来显示:<br />tab_demo.xml:<br /><?xml version="1.0" encoding="utf-8"?><br /><FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"<br /> android:orientation="vertical"<br /> android:layout_widt
2010-07-27 12:09:00 648
转载 花样Android ProgressBar 史上最强大讲解
<br />该类型进度条也就是一个表示运转的过程,例如发送短信,连接网络等等,表示一个过程正在执行中。<br /><br />一般只要在XML布局中定义就可以了。<progressBar android:id="@+id/widget43"<br />? ?? ?android:layout_width="wrap_content" <br />? ?? ?android:layout_height="wrap_content"? ? <br />? ?? ?android:layout_gravity="
2010-07-26 21:19:00 2868 1
原创 ADB的使用与在模拟器中虚拟SD卡
<br /><br />ADB(Android Dubug Bridge)是由Android SDK提供的一个用于管理模拟器或Android设备的命令行工具,默认情况位于<SDK>/tools/。<br />要查看当前已经连接的设备:adb devices<br />当有多个设备已经连接时,可以使用命令 -s <设备/模拟器设备号> <命令>指定要执行命令的设备或模拟器。<br />另外,-d <命令>是唯一用在USB连接的Android设备上执行命令。<br />安装应用程序:<br />adb inst
2010-07-25 17:36:00 1134
原创 应用程序签名
<br /> <br />1、所有的Andoird应用程序都必须签名,系统不会安装没有进行签名的程序。<br />2、可以对应用进行自签名,无需任何证书机构支持<br />3、使用标准的工具keytool和jarsigner来产生密钥对.apk应用程序进行签名。<br />首先导出项目:<br /><br /> <br />然后获取私钥:<br /><br /> <br />其中:<br />-genky :产生一个密钥对(公钥和私钥)<br />-v:开启详细输出<br />-keystore <keys
2010-07-25 17:35:00 688
原创 最终用户许可
<br /><br />1、EULA文件,将其添加到assets目录。<br />2、在应用程序中显示EULA。主要是在一个对话框中显示EULA文件内容。<br />Eula.java<br />public class EULA {<br />private static final String ASSET_EULA = "EULA";<br />private static final String PREFERENCE_EULA_ACCEPTED = "eula.accepted";<br />pr
2010-07-25 17:33:00 577
原创 Android应用程序发布
一个Android应用程序的发布需要以下几个步骤: 在实际设备上的应用测试 添加最终用户许可协议 为应用添加图标 去除日志及调试信息 定义应用程序版本 获取一个应用程序签名用的密钥 如果使用了MapView,还需要申请MapAPI密钥 签名应用程序 再测试
2010-07-25 17:32:00 734
原创 桌面部件
<br /><br />桌面部件是一种利用AppWidget框架将应用程序的某个部件摆放在桌面的组件。<br />要为程序定义桌面组件,首先要在程序的res/xml目录下新建一个XML文件来对桌面部件进行描述(桌面部件描述文件):<br />【注】这里是做一个显示时间的桌面部件。<br /><?xml version="1.0" encoding="utf-8"?><br /><appwidget-provider xmlns:android="http://schemas.android.com/apk/
2010-07-25 17:25:00 726
原创 地图的放大与缩小2:利用缩放控件ZoomControls
<br /><br />ViewGroup zoom = (ViewGroup) findViewById(R.id.zoom);<br /> zoom.addView(map.getZoomControls());<br /><br />// 增强用户的体验,平滑移动到新位置<br />mapcont.animateTo(new GeoPoint((int) (lat * 1E6),<br />(int) (lng * 1E6)));
2010-07-25 17:05:00 1208
原创 simpleCursorAdapter的一个问题
在使用simpleCursorAdapter显示sqlite数据时,在new创建阶段就出现 java.lang.IllegalArgumentException: column ‘_id’ does not exist 错误。查询手册后,发现Cursor中未包含名为_id的列,而该要求是父类CursorAdapter的要求:
2010-07-25 17:05:00 648
原创 标记位置与放大、缩小地图
<br /><br />/*<br /> * 如要在地图上标记位置,就需要用到Overlay类。Overlay类是一种专门用于在地图上用 2d图像进行标记的类<br /> */<br />map = (MapView) findViewById(R.id.mapView);<br />List<Overlay> overlays = map.getOverlays();<br />MyLocationOverlay myLocation = new MyLocationOverlay(this, map);
2010-07-25 17:04:00 839
原创 MapView还提供了卫星视图、交通视图和街景视图等功能
<br /><br />void setSatellite(boolean on)<br />void setTraffic(boolean on)<br />void setStreetView(boolean on)<br />//通过ToggleButton来开/关卫星视图功能<br />satellite_switch_button = (ToggleButton) findViewById(R.id.button_satellite);<br />satellite_switch_button.s
2010-07-25 17:04:00 941
原创 使用MapView显示地图
首先必须新建一个继承自MapActivity的Activity。然后加入MapView,以便绘制Google地图。由于Android的地图的相关API不是系统标准的包,而是可选包,因此我们必须在AndoridManifese.xml中声明应用将使用地图库,就像这样:但要注意该语句在AndoridManifese.xml中的位置,一开始放在外部,程序不能正常运行。经过一番测试才知道应该加在内部。另外,程序还下载地图,故还需要访问INTERNET的权限:MapView定义如下: android:id="@+i
2010-07-20 17:58:00 1457
原创 怎么申请google map api-key
首先检查C:/Documents and Settings/Administrator/.android下面是否有debug.keystore,如没有则在eclispe下新建一个以Google APIs为Build Targe的项目,则该文件会生成。1、在命令行下输入:keytool -list -alias androiddebugkey -keystore (debug.keystore文件路径) -storepass android -keypass android 如:其中:-list:在终端打印出
2010-07-20 17:56:00 14316 4
原创 同时启动两个虚拟机
<br /><br />1、首先在eclipse下把程序运行起来,即启动了第一个虚拟机<br />2、在windows命令行下输入:emulator -data foo
2010-07-20 17:52:00 2456
原创 Service
<br /><br />与Activity不同,Service是不直接与用户交互的运行于后台的一类组件。但<br />Service也需要在所属包内的AndroidManifest.xml有着相对应的<service>标签来声明。若需要指定使用当前Service的权限,则还需要在<service>标签内加上权限标签<uses-permission><br />Service的状态回调方法只有三个:onCreate()、onStart()、和onDestory().Service是不能自己启动的,必须通过Co
2010-07-20 17:52:00 466
原创 使用BroadcastReceiver
<br /><br />在Android中,Broadcast是一种被广泛应用于在程序之间传递信息的机制。而<br />BroadReceiver是对发送出来的Broadcast进行过滤接收并响应的一类组件。<br />首先在需要发送信息的地方,把要发送的信息和用于过滤的信息装入一个Intent对象,然后通过调用Context.sendBroadcast()、sendOrderBroadcast()或sendStickyBroadcast()方法,把Intent对象以广播的形式发送出去。当Intent发送以
2010-07-20 17:52:00 829
原创 PhoneNumberUtils、Toast、Intent
<br /><br />tring phoneNum = eText.getText().toString();<br />if (PhoneNumberUtils.isGlobalPhoneNumber(phoneNum)) {<br />/*<br /> * 创建一个新的Intent对象的基本语法如下: Intent <intent_name> = new<br /> * Intent(<action>,<Data>) 在Android中,传递给Intent的数据用URI格式表示<br /> */<br
2010-07-20 17:51:00 3635
原创 显式Intent和隐式Intentd
<br /><br />对于明确指出了目标组件名称Intent,称之为“显式Intent”。对于没有明确指出目标组件名称的Intent,则称之为“隐式Intent”显式Intent直接用组件名称定义目标组件,这种方式很直接,但是由于开发人员往往不清楚别的应用程序的组件名称,因此,显式Intent更多用于应用程序内部传递消息。隐式Intent恰恰相反,它不会用组件名称定义需要激活的目标组件,它更广泛地用于在不同应用程序之间传递消息。<br />一个没有在AndroidMainfest.xml中声明自己所含组件
2010-07-20 17:50:00 1204
原创 IntentFilter
<br /><br />动作测试:<br />应用程序的组件为了告诉Andorid自己能响应、处理哪些隐式Intent请求,可以声明一个甚至多个IntentFilter.<br />隐式Intent和IntentFilter进行比较时的三要素是Intent的Action、Data以及Category.<br />一条<intent-filter>元素至少应包含一个<action>,否则任何Inrent请求都不能和该<intent-filter>匹配。<br />(1)如果<intent-filter>中没有
2010-07-20 17:50:00 1516 1
原创 Action/Data/CategoryExtras/Flags
<br /> <br />一个字符串, 为请求的动作命名, 或者, 对于broadcast intent, 发生的并且正在被报告的动作. 例如:<br />常量<br />目标组件<br />动作<br />ACTION_CALL<br />activity<br />发起一个电话呼叫.<br />ACTION_EDIT<br />activity<br />显示数据给用户来编辑.<br />ACTION_MAIN<br />activity<br />将该activity作为一个task的第一个activ
2010-07-20 17:49:00 699
原创 Intents and Intent Filters
<br /><br />三种应用程序基本组件——activity, service和broadcast receiver——是使用称为intent的消息来激活的。Intent消息传递是一种组件间运行时绑定的机制. intent是Intent对象, 它包含了需要做的操作的描述, 或者, 对于广播来说, 包含了正在通知的消息内容. 对于向这三种组件发送intent有不同的机制:<br /> 使用Context.startActivity() 或 Activity.startActivityForResult()
2010-07-20 17:47:00 461
原创 常用适配器
<br /><br />21、<br />适配器<br />描述<br />SimpleAdapter<br />静态数据的适配器,数据用Map接口子类对象的链表来表示,即List<? extends Map<String,?>>,链表中的每一个结点代表一个数据项,包含了Map中所指的一个或多个数据,最后使用指定的XM文件把链表中的数据项描述成适配器控件的子控件<br />SimpleCursorAdapter<br />数据库查询的适配器。用Cursor对象来描述数据,可以指定Cursor里的一列或多列以
2010-07-20 17:46:00 589
原创 更改控件外观
<br /><br />可以在XML布局文件中设置android:background值为一个Drawable资源。<br />在button按下的时候改变背景图片:<br />aButton.setOnTouchListener(new OnTouchListener(){<br />public boolean onTouch(View arg0,MotionEvent arg1){<br />if(arg1.getAction()==MotionEvent.ACTION_DOWN){<br />//更
2010-07-20 17:46:00 548
原创 Android对话框
<br /><br />protected Dialog onCreateDialog(int id, Bundle args) {<br />// TODO Auto-generated method stub<br />// super.onCreateDialog(id, args);<br />switch (id) {<br />case DIALOG_WELCOME:<br />return new AlertDialog.Builder(this).setIcon(R.drawable.amo
2010-07-20 17:45:00 933
原创 Android菜单
<br /><br />Android平台所提供的菜单有:选项菜单(OptionsMenu),上下文菜单(ContextMenu),子菜单(Submenu)<br />1、选项菜单:<br />public boolean onCreateOptionsMenu(Menu menu) {<br />super.onCreateOptionsMenu(menu);<br />// getMenuInflater()方法返回一个MenuInflater类的实例,<br />// 用于从XML文件中读取菜单的定义
2010-07-20 17:44:00 618
原创 AndroidManifest.xml文件
<br /><br />每一个Android应用程序都必须包含一个AndroidManifest.xml文件,这个文件的作用是告诉Android系统应用程序包含的基本信息,比如应用程序有哪些组件、哪些资源。<br />其中:<br /> <intent-filter><br /> <action android:name="android.intent.action.MAIN" /><br /> <category android:name="android.intent.category.LAU
2010-07-20 17:43:00 516
原创 Android布局管理
<br /><br />fill_parent:占满整个屏幕<br />wrap_content:大小刚好足够显示当前控件里的内容。<br />android:gravity="right":表示其子控件的对齐方式(重力倾向)<br />表格布局<TableLayout>:<br /> android:collapseColumns="1":表示隐藏TableLayout里的TableRow的列1,即第二列(编号从0开始),如果有多个列需要隐藏,则用逗号隔开, android:collapseColumns
2010-07-20 17:43:00 877
原创 创建/管理资源
<br /><br />总的来说,资源可以分为3类:<br />1、XML文件<br />2、位图文件(图片)<br />3、Raw文件(如音频文件)<br />存放目录<br />资源类型<br />res/anim<br />编译成贞动画的XML文件<br />res/drawable<br />.png、.9.png、.jpg格式的文件<br />res/layout<br />描述屏幕布局的XML文件<br />res/values<br />arrays.xml:定义数组<br />colors.
2010-07-20 17:42:00 396
原创 Activity的生命周期
一个Activity代表一个显示给用户的界面。Activity的生命周期是指一个Activity从创建到销毁的过程。Activity栈:Activity系统中,所有的Activity被保存在Activity栈中。当启动一个新的Activity时,这个Activity就被压入栈顶。Activity从创建到关闭,可能经历下面几种状态:a)活跃。当一个Activity位于Activity栈顶时,它所代表用户界面处于屏幕的前端,也就是说对用户可见。如果另一个Activity状态变为活跃,之前活跃的Activity将
2010-07-20 17:39:00 581
原创 SQLite
<br /><br />可以定一个接口,用来存放数据库的名称以及各个字段名:<br />public interface Constants extends BaseColumns {<br />public static final String TABLE_NAME="student";<br />public static final String SID="sid";<br />public static final String NAME="name";<br />public static fi
2010-07-20 17:37:00 494
S2SH hibernate整合
2013-07-11
S2SH: Struts2.3+hibernate4+spring3.2整合实例
2013-07-11
ExtDocs.CHM
2010-09-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人