
Android-x程序设计
文章平均质量分 84
此专栏文章全部翻译自Wei-Meng Lei编著的《Beginning Android 4 Application Development》。如果想要购买原版,请去http://www.amazon.com搜索书名即可。
manoel
这个作者很懒,什么都没留下…
展开
-
【Android 开发教程】在Activity和Service之间建立链接
通常,service总是在它自己的线程里面执行任务,和调用它的activity线程是相互独立的。如果service只是在后台执行一些循环任务,并且不关心service的状态,是不会产生问题的。举个例子,有一个service在后台打印当前设备的地理位置信息。这种情况下,service不需要和任何activity进行交互。因为,service的主要任务就是打印日志。然而,想像一下,你想要监视一个特定的翻译 2013-09-03 15:42:53 · 6643 阅读 · 0 评论 -
【Android 开发教程】使用IntentService执行异步操作
之前的几章,我们已经了解了使用startService()去开启一个service,用stopService()去停止一个service。有一点很重要,就是一旦service结束了它要执行的任务,那么,就应该立即关闭service,同事清理一些资源。这就是为什么在任务结束的时候,使用stopSelf()方法。很不幸,大部分开发者经常忘记停止service。这时,IntentService就派用场了翻译 2013-09-03 15:41:21 · 7238 阅读 · 0 评论 -
【Android 开发教程】在服务中执行重复任务
除了在service中执行耗时的操作,也可能需要在service中执行重复的任务。举个例子,你想要编写一个闹钟程序,定时地在后台执行一个任务。在这种情况下,你的service就需要判断循环周期是否已经到达。可以使用Timer类去实现。1. 使用之前的Services工程,做一点修改。public class MyService extends Service { int counter =翻译 2013-09-03 15:39:33 · 11658 阅读 · 2 评论 -
【Android 开发教程】在服务中执行耗时操作
上一节创建的服务实际上并没有做任何有用的事情,这一节将修改一下它,让它去执行一个任务:模拟下载文件。1. 使用上一节的Services工程,做一点修改。public class MyService extends Service { @Override public IBinder onBind(Intent arg0) { return null; }翻译 2013-09-03 15:38:35 · 11859 阅读 · 0 评论 -
【Android 开发教程】自定义服务
服务,就是跑在后台的“程序”,不需要和用户进行交互。举个例子,当使用一款应用的时候,可能同时想在后台播放一些音乐。在这种情况下,后来播放音乐的代码不需要和用户进行交互,所以,它就可能被当成一个服务。当不需要给用户提供UI的时候,服务也是一种非常好的选择。想要彻底的了解服务的工作原理,最好的办法就是去着手尝试一下。下面将会新建一个简单的服务,并且在其中添加一些方法。讲述如何开启和关闭一个服务。1.翻译 2013-09-03 15:31:58 · 9103 阅读 · 0 评论 -
【Android 开发教程】发送Email
类似SMS,Android系统同样支持通过编码的方式发送Email。1. 新建一个工程,Emails。2. 修改main.xml文件。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_h翻译 2013-09-03 14:11:07 · 7929 阅读 · 0 评论 -
【Android 开发教程】使用Intent发送短信
使用SmsManager类,可以在自己编写的程序内部发送短信,而不需要调用系统的短信应用。然而,有的时候调用系统内置的短信应用会更加方便。这时,需要使用一个MIME类型为vnd.android-dir/mms-sms的Intent对象。 Intent i = new Intent(android.content.Intent.ACTION_VIEW); i.putExtra("ad翻译 2013-09-03 14:03:37 · 6570 阅读 · 0 评论 -
【Android 开发教程】通过编码实现发送短信
1. 创建工程,SMS。2. 修改main.xml中的代码。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orien翻译 2013-09-03 09:52:54 · 6005 阅读 · 0 评论 -
【Android 开发教程】自定义ContentProvider的使用
现在,ContentProvider已经创建好了,可以去尝试使用一下。1. 使用之前的工程,在布局文件main.xml中添加一些控件。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_h翻译 2013-09-02 14:08:55 · 6849 阅读 · 0 评论 -
【Android 开发教程】自定义ContentProvider
在Android平台上创建ContentProvider,相对而言是很容易的。你所需做的就是继承ContentProvider这个抽象类,然后重新它里面的各种方法。下面将介绍如何创建一个ContentProvider,用来存储一些图书的信息。1. 使用Eclipse创建一个工程,ContentProviders。2. 新建一个名为BooksProvider类。3. BooksProvider.ja翻译 2013-09-02 10:09:11 · 12630 阅读 · 1 评论 -
【Android 开发教程】条件查询、过滤和排序
ProjectionsmanagedQuery()的第二个参数(CursorLoader类的第三个参数)控制查询返回列的数量。之前的代码,传入的是null,就是把所有的列都取到。 Cursor c; if (android.os.Build.VERSION.SDK_INT < 11) { // before Honeycomb翻译 2013-08-06 15:15:40 · 9202 阅读 · 0 评论 -
【Android 开发教程】经过预定义的查询字符串常量
除了使用自己手动写的查询URI,可以也使用Android内置的URI查询常量。例如,除了使用content://contacts/people,可以写这个赋值语句。Uri allContacts = ContactsContract.Contacts.CONTENT_URI;一些Android内置的预定义查询字符串常量。Browser.BOOKMARKS_URIBrowser.SEARCHS_UR翻译 2013-08-06 15:14:56 · 4422 阅读 · 0 评论 -
【Android 开发教程】ContentProvider的使用范例
想要理解ContentProvider的最佳方式就是自己动手去尝试一下。下面介绍如何使用一个内置的Contacts ContentProvider。1. 创建一个工程,Provider。2. main.xml中的代码。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layou翻译 2013-08-06 15:14:15 · 3722 阅读 · 0 评论 -
【Android 开发教程】数据共享
在上一章节中,我们介绍了数据持久化的几种方法:首选项,文件,以及数据库。在保存复杂的数据结构时,推荐使用SQliteDatabase。但是,共享数据就成了一种挑战,因为,数据库只对创建它的程序包可用。在这一章节中,将会介绍Android特有的数据共享方式:使用ContentProvider。也会介绍如何使用内置的ContentProvider,以及创建自己的ContentProvider,以便在多翻译 2013-08-06 15:13:14 · 3727 阅读 · 0 评论 -
【Android 开发教程】预创建数据库
在开发过程中,有时候,预先创建好数据库比在程序运行时创建数据库更加地高效。举个例子,你想编写一个程序,这个程序把你去过的地方的坐标都显示出来。这种情况下,预先创建数据库是更加容易的,比在运行时创建数据库。这里,需要使用一些免费的工具。推荐使用SQLite Database Browser,支持多平台,并且免费。下载地址: http://sourceforge.net/projects/sqlite翻译 2013-08-06 14:59:52 · 3775 阅读 · 0 评论 -
【Android 开发教程】使用数据库
DBAdapter已经创建好了,现在我们可以去使用数据库了。下面的章节,将介绍常规的CRUD(增加,读取,更新,删除)。往表中添加联系人。1. 使用之前的项目,在DatabasesActivity.java中添加一些代码。public class DatabasesActivity extends Activity { /** Called when the activity is fir翻译 2013-05-27 10:46:13 · 10964 阅读 · 0 评论 -
【Android 开发教程】创建数据库辅助类
目前所介绍的方法只是用来存储一些简单的数据。如果想要存储关系型数据,那么使用数据库将会更加的效率。举个例子,你要存储学校里面每一个学生的分数,这种情况下,最好使用数据库,因为你可以查询某个学生的具体分数。而且,使用数据库能够保持不同数据之间关系的完整性。Android使用SQLite数据库系统。使用这种数据库,只有创建它的程序可以使用它,别的程序无法访问到它。在接下来的几节中,会简述如何通过编码在翻译 2013-04-14 12:28:38 · 10675 阅读 · 0 评论 -
【Android 开发教程】使用静态资源
除了可以在运行时去创建并使用文件,也可以在设计阶段把文件放在程序包中,这样一来就可以在运行时去使用他们。举个例子,你想把一些帮助文件打包进程序,当用户需要的时候,就可以展示给他们看。在这种情况下,应该把文件放在res/raw文件夹下面。想要在代码中使用这个文件,需要调用Activity的getResources()方法,返回一个Resources对象。然后,使用它的openRawResource(翻译 2013-04-11 20:16:01 · 7855 阅读 · 0 评论 -
【Android 开发教程】如何选择最佳的存储方式
之前的几篇文章描述了在Android应用中存储数据的主要三种方式:SharedPreferences,内部存储和外部SD卡存储。究竟在你的应用中采用那种方式呢?下面有一些建议:1. 如果你有键值对形式的数据,使用SharedPreferences对象。举个例子,如果你想存储用户的一些属性,比如名字,肤色,生日或最后的登陆日期,那么SharedPreferences对象就是存储这些数据的最佳方式。2翻译 2013-04-11 07:23:01 · 6996 阅读 · 0 评论 -
【Android 开发教程】保存到外部存储设备(SD卡)
上一节介绍了如何把文件存储到内部设备。有的时候,需要把文件存储到外部存储设备,比如SD卡。因为SD卡具有更大的存储空间,同时也可以很容易的和其他用户分享这些文件。使用上一节的例子,把用户输入的文字保存在SD卡,修改onClick()事件。如下:public class FilesActivity extends Activity { EditText textBox; static final翻译 2013-04-09 22:03:01 · 13496 阅读 · 2 评论 -
【Android 开发教程】保存到内部存储设备
SharedPreferences对象能够让你去保存一些“键值对”类型的数据,比如用户id,生日,性别,身份证号等等。但是,有的时候你需要去使用传统的文件系统去保存数据。例如你可能想要去保存一篇文章,而这篇文章要被展示在你的应用中。在Android系统中,你也可以使用java.io包去实现这个功能。在Android系统中,第一种保存文件的方法是存储到内部设备。下面展示如何保存用书输入的字符串到内部翻译 2013-03-04 10:58:49 · 16043 阅读 · 0 评论 -
【Android 开发教程】修改首选项文件的默认名字
在我的设备上面,默认的首选项名字是net.manoel.UsingPreferences_preferences.xml,这个名字是使用包名作为前缀的。然而,给首选项定义一个特殊的名字也是非常有益的。可以按照下面这么做。public class AppPreferenceActivity extends PreferenceActivity { @Override public v翻译 2013-02-19 14:22:04 · 7604 阅读 · 0 评论 -
【Android 开发教程】编码实现获取与修改预设信息中的值
在上一节中,大家已经看到了,PreferenceActivity这个类允许用户在运行时去创建和修改首选项信息。如果想要使用这些首选项信息,你就需要使用SharedPreferences这个类。1. 继续使用上一节中的工程,在UsingPreferences.java中添加一些代码。public class UsingPreferencesActivity extends Activity { /翻译 2012-12-09 10:26:30 · 8206 阅读 · 0 评论 -
【Android 开发教程】获取预设信息
下面展示如何使用SharedPreferences对象去保存应用的数据。你也将会看见通过特殊的Activity去修改已经被保存的应用数据。1. 新建一个工程,UsingPreferences。2. 在res文件夹下面新建一个文件夹,xml。在新建的文件夹中新建一个文件,myappreferences.xml。3. 在myapppreferences.xml文件中编写代码。<PreferenceS翻译 2012-09-27 14:37:32 · 7811 阅读 · 0 评论 -
【Android 开发教程】AnalogClock和DigitalClock
AnalogClock视图显示了一个模拟的时钟,其中有一个时针和一个分针。与其相对的是DigitalClock视图,它可以显示数字模拟时钟。这两个视图只能显示系统时间,不允许显示一个特定时区的时间。因此,如果你想要显示一个特定时区的时间,那么你就不得不去实现你自己的自定义控件了。注:关于如何自定义控件,请查看如下网址。http://developer.android.com/guide/topic翻译 2012-09-26 11:17:57 · 10064 阅读 · 0 评论 -
【Android 开发教程】上下文菜单
在上一节,我们已经知道了在按MENU键的时候,如何显示选项菜单。但是,除了选项菜单,你也可以显示一个上下文菜单。上下文菜单通常是和activity中的组件相关联的。当用户长按一个组件的时候,它的上下文菜单就会被触发。例如,用户长按一个Button,一个上下文菜单就有可能被显示。如果想要把一个组件与一个上下文菜单联系在一起,就需要在组件上面调用setOnCreateContextMenuListen翻译 2012-09-26 11:08:54 · 8433 阅读 · 0 评论 -
【Android 开发教程】选项菜单
现在,我们就可以去修改上一节中的项目了。这样,在用户按menu键的时候就会弹出选项菜单了。1. 使用上一节中的工程,在MenusActivity.java中添加一些代码。public class MenusActivity extends Activity { /** Called when the activity is first created. */ @Override翻译 2012-09-25 21:39:41 · 7911 阅读 · 0 评论 -
【Android 开发教程】辅助方法
菜单可以用来显示额外的选项,这些选项也不必出现在主界面中。在Android框架中,主要有2种菜单:选项菜单 —— 显示与当前活动有关的信息。使用MENU键,可以触发这个菜单。上下文菜单 —— 显示与活动中某一个视图相关的信息。长按一个视图,可以触发这个菜单。左侧是 选项菜单,右侧是 上下文菜单。在使用这两种菜单之前,我们先介绍一下两个辅助方法。一个用来填充菜单中的选项列表,另一个用来处理菜单的选中翻译 2012-08-28 14:58:54 · 7619 阅读 · 1 评论 -
【Android 开发教程】GridView
GridView是一个可滑动的二维平面视图。通常,用GridView去显示一些图片。下面展示如何使用GridView。1. 创建一个工程,Grid。2. 在res/drawable-mdpi下面放一些图片。3. main.xml中的代码。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and翻译 2012-06-13 21:07:51 · 6812 阅读 · 0 评论 -
【Android 开发教程】ImageSwitcher
前面的一节,介绍了如何组合使用Gallery和ImageView。但是,有的时候当你在gallery中点击一个图片,你可能不希望一个图片“突然地”在imageview中显示出来。例如,你可能希望给某个图片设置一些切换动画。此时,就需要使用ImageSwitcher和Gallery一起使用。下面展示如何使用ImageSwitcher。1. 创建一个工程,ImageSwitcher。2. main.x翻译 2012-06-04 20:54:34 · 12919 阅读 · 0 评论 -
【Android 开发教程】Gallery和ImageView
Gallery可以显示一系列的图片,并且可以横向滑动。下面展示如何使用Gallery去显示一系列的图片。1. 创建一个工程,Gallery。2. main.xml中的代码。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_paren翻译 2012-05-30 20:36:08 · 10078 阅读 · 0 评论 -
【Android 开发教程】PreferenceFragment
有的时候,我们做的程序需要提供一些选项的功能,能让用户去定制化他们自己的使用风格。举个例子,你可能允许用户是否自动保存登录信息,允许用户自己设定某个页面的刷新时间等等。在Android平台上面,我们可以使用PreferenceActivity基类去显示给用户一个选项设置的界面。在Android3.0或更高的版本上,可以使用PreferenceFragment类去实现这个功能。下面将展示如何去创建和翻译 2012-05-26 19:12:00 · 22249 阅读 · 0 评论 -
【Android 开发教程】DialogFragment
我们也可以创建另外一种碎片——DialogFragment。顾名思义,DialogFragment就是一个浮动在Activity上面的Fragment。当需要用户的反馈时,DialogFragment就会派上用场。与使用ListFragment类似,需要继承DialogFragment基类。下面将会展示如何使用DialogFragment。1. 创建一个工程:DialogFragmentExamp翻译 2012-05-24 20:39:08 · 23364 阅读 · 2 评论 -
【Android 开发教程】ListFragment
ListFramgent就是一个包含ListView的Fragment,它可以通过数据源(数组或游标)显示一系列的信息。ListFragment是非常有用处的,就像RSS,可能左边显示一个列表,右边显示被选中的列表所对应的内容。可以通过继承ListFragment创建一个ListFragment对象。下面将展示如何使用ListFragment。1. 创建一个工程:ListFragmentExamp翻译 2012-05-23 21:20:35 · 22915 阅读 · 0 评论 -
【Android 开发教程】Spinner
从前面的几节课可知,ListView用来显示一个长列表信息,同时把整个屏幕占满了(ListActivity)。但是有的时候,你可能需要其他类似的视图,这样,你就不必把整个屏幕都占满了。在这种情况下,你就应该使用Spinner控件。Spinner一次显示列表中的一个信息,并且它能让用户进行选择。下面将展示如何在Activity中使用Spinner。1. 创建一个工程:BasicViews6。2. m翻译 2012-05-22 20:37:49 · 6188 阅读 · 0 评论 -
【Android 开发教程】ListView的总结范例
使用一个例子,来总结一下ListView的基本使用。1. 新建一个工程:ListViewDemo。2. main.xml中的代码。<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_hei翻译 2012-05-19 11:53:18 · 9758 阅读 · 4 评论 -
【Android 开发教程】ListView的扩展功能
ListView是一个可以被深度扩展的视图。在做项目的时候,扩展ListView去显示数据是必不可免的。接下来会展示如何在ListView中去选择多个物件,以及如何使用ListView的“过滤”功能。1. 使用上一节的工程:BasicViews5。2. 在BasicViews5Activity.java中添加一些代码。 String[] presidents; /** Ca翻译 2012-05-19 11:39:59 · 11975 阅读 · 0 评论 -
【Android 开发教程】ListView的基本使用
这段时间公司工作比较忙,又加上自己要做点小项目,所以很久没更新博客了。言归正传,今天总结一下Android中的列表控件:ListView和Spinner。ListView可以垂直并可滑动地地显示一些信息。下面阐述如何使用ListView显示一系列的信息。1. 创建一个工程:BasicViews5。2. strings.xml中的代码。 Hello World, BasicViews5Ac翻译 2012-05-19 11:19:36 · 8787 阅读 · 0 评论 -
【Android 开发教程】DatePicker
DataPicker和上一节讲的TimePicker很相似。使用DatePicker,可以让用户选择一个特定的日期。下面展示如何使用DatePicker。1. 使用上一节的工程,BasicViews4,修改main.xml。[html] view plaincopyxml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="h翻译 2012-05-19 10:21:37 · 3958 阅读 · 0 评论 -
【Android 开发教程】TimePicker
使用TimePicker,可以让用户去选择一天中的事件,包括24小时制和AM/PM制。下面的例子将会展示如何使用TimePicker。1. 创建一个工程:BasicViews4。2. main.xml中的代码。[html] view plaincopyxml version="1.0" encoding="utf-8"?> LinearLayout xmlns:android="http://s翻译 2012-05-19 10:20:46 · 4465 阅读 · 0 评论