Android中各种类型对话框的使用

只有标题和文本内容简单对话框

代码与范例:

说明:生成一个只有标题与内容的简单对话框。

含有一个按钮的对话框

代码与范例:

说明:生成一个含有一个按钮的简单对话框,点击该按钮将关闭对话框。

含有两个按钮的对话框

代码与范例:

说明:生成一个含有两个按钮的简单对话框。

含有三个按钮的对话框

代码与范例:

说明:生成一个含有三个按钮的对话框。

含有一个单选列表的对话框

代码与范例:

说明:生成一个含有一个单选列表的对话框。

含有一个多选列表的对话框

代码与范例:

说明:生成一个含有一个多选列表的对话框。

含有Radio Button的对话框

代码与范例:

说明:生成一个含有Radio Button的对话框。

自定义对话框

代码与范例:

其中代码的第一行也可以用以下两种之一替换来展开布局:

直接通过代码生成布局也可以,虽然不是太推荐这种做法:

说明:生成一个含有自定义视图的对话框,其中用到了自定义的xml布局文件custom_dialog.xml。

综合对话框

代码与范例:

说明:综合使用上述几种对话框。

含有文本框的对话框

代码与范例:

说明:生成一个能够输入文本的对话框。

含有进度条的对话框

代码与范例:

说明:生成一个含有进度条的对话框。

含有正在运行标识的对话框

代码与范例:

说明:生成一个含有一个正在运行的循环旋转标识的简单对话框。

Android中@Override错误的解决方法

在使用eclipse开发Android应用时可能会遇到@Override错误,对于@Override的annotation报错。这是由于JRE/JDK的版本问题所致。解决方法很简单,在eclipse的Windows菜单-Preference-Java-Complier中调整Complier compliance level即可。虽然Android是基于1.5设计的,不过由于eclipse的兼容问题,需要在这里修改为1.6才行。

对于已经导入至workspace的项目,可能还需要点击右上角的Configure Project Specifiec Settings对其进行修改才行。

完成了修改之后,之前编译器提示的@Override错误就会消失了。

Android中自定义物理按键BACK键的行为

代码与范例:

说明:在Activity中覆盖onBackPressed()方法即可自定义BACK键的行为。不过这一方法需要API Level 5+,也就是说实际上项目的Build Target至少需要是API Level 7的Android 2.1。在这里需要注意一个问题:即使在Manifest文件中定义了targetSdkVersion是7,如果项目属性中Build Target是,比如4的话,编译器也会对这一Override报错。

AppXplore——Android开发用的实用工具

索尼爱立信(Sony Ericsson)Develop World近日公布了其Android开发用的实用工具AppXplore的最新版(2.0.1)。

该软件适用于Android 2.1及以上版本,作用有:

  • 列出所有安装的应用程序及包
  • 搜索应用程序
  • 根据一系列条件对列表进行过滤
  • 显示任何应用程序的AndroidManifest.xml文件
  • 保存或通过邮件发送AndroidManifest.xml文件
  • 将AndroidManifest.xml文件的信息通过易读的形式展现

可以看到,在一些情况下,AppXplore可以发挥重要的作用。现在它在Android Market上可以免费下载

或者可以通过下面的二维码下载:

Android中获取设备Google日历(Google Calendar)信息

代码与范例:

说明:Android中内容提供器(ContentProvider)有着广泛的应用,Google账户同步的日历也将数据储存在相应的内容提供器中。这里是日历内容提供器的一个简单范例,可以获取日历的名称,并提供了一个添加日历项目的方法。

Android中常用权限列表

由于自己在做的项目的关系,把Android平台中权限的中文对应整理了一下。现发布于此以方便有需要的人。

Android中获取设备当前时间日期

代码与范例:

说明:获得设备当前的时间与日期,并将它们转换成字符串变量以供输出。获得当前时间日期虽然也有通过Java的实现方法,不过对于Android来说,使用Calendar类来获取这些信息显然更为便捷。除了这里列出的月/日/时/分以外,Calendar类还提供了包括周数在内的很多实用内容,可自己去了解一下。

通过Sony Tablet进行Android开发

昨天索尼开放了适用于Sony Tablet(Android平台)和Sony Internet TV(Google TV)的开发者网站,提供了相应的Add-on和Develop guideline等内容的下载。

不过模拟器的运行速度缓慢,终究不适合实际的开发。既然已经有了Tablet S的实机,就用实机来开发吧。步骤如下(以下内容适用于Windows,其他操作系统请参见上一节中提到的开发者网站的相关内容):

  1. 安装Android的SDK,并通过SDK Manager下载安装Google USB Driver。目前应该是r4版本。
  2. 开启Tablet S的Debug选项并连接PC与Tablet S。
  3. 应该是无法找到Debug驱动。需要打开设备管理器,选择为未知设备Sony Tablet更新驱动。手动选择驱动程序路径为Android SDK下的google-usb_driver目录。会出现安全提示,不必在意,继续确认安装即可。
  4. 为adb_usb.ini添加索尼的制造商信息。具体方法为打开命令提示行,使用cd指令定位到.android目录(通常位于用户目录之下)。输入

至此Sony Tablet的开发驱动就安装完成,可以通过Eclipse进行开发与调试。下面是截图的效果图:

Android中将字符串文字内容复制到系统剪贴板

代码:abstract void setText(CharSequence text)

范例:

说明:et为一个EditText对象。范例中将该EditText对象的内容复制入系统剪贴板。首先创建一个ClipboardManager对象cmb并将其与系统剪贴板相关联。之后通过setText(CharSequence text)函数即可将String类型的内容复制到剪贴板。此外ClipboardManager类还提供有abstract CharSequence getText()函数以及abstract boolean hasText(),分别可以获取剪贴板中的字符串内容以及查询剪贴板当前是否保存有内容。ClipboardManager类有两个版本,这里使用的是从API Level 1就开始被支持的仅能保存字符串的剪贴板管理器,自从Android 3.0(API Level 11)起新版本的ClipboardManager类则支持更多功能。详情请参见官方文档

Android中如何创建自定义ListView

综述

随着搭载了Android系统的设备数量越来越普及,对Android系统应用开发有兴趣的开发者也越来越多。各种类型的应用中都常常会使用到ListView。Android系统预先定义了一些ListView的类型,可以在官方发布的API Demos中找到。不过由于往往需要使用自定义的ListView来满足不同应用的设计需要,因此有必要了解Android系统中创建并使用自定义ListView的方法。本文结合个人的一些经验,期望能尽可能简明易懂地对这个问题进行说明。

本文的目标读者是具有一定的Java语言和Android开发基础的开发者。

本文将对一个具有图片(ImageView)、文本(TextView)和可选框(CheckBox)三种控件的自定义ListView的代码进行注释与详解,以供读者举一反三,创建并使用自己的自定义ListView。

本文所使用的开发环境为:

  • Windows 7
  • Eclipse Java IDE Version 3.7 (Indigo)
  • Oracle Java SE JDK 6 Update 26
  • Android SDK Version 2.3.3, API 10

(以上并非必要环境。相兼容的操作系统和较低版本的软件也可以完成本项目。)

代码

ListViewExampleActivity.java

.
.
ViewHolder.java

.
.
main.xml

.
.
itemrow.xml

.
.

说明

ListViewExampleActivity是本范例的主体。在onCreate函数中进行了准备工作,初始化了数据等,并提供了ListView的按键监听函数。在该类中包含了基于BaseAdapter 的自定义适配器ItemAdapter类。这是使用自定义ListView的关键。代码注释说明了各个部分的内容。其中getView()函数需要根据不同的自定义ListView的项目内容进行调整。本范例的项目包含图片、文本和CheckBox三项内容,因此getView()函数也相应地对这三项内容进行了操作。如果自定义的ListView项目包含更多内容,在这里进行相应的语句增添即可。

ViewHolder包含了单条项目中所要储存的数据。由于结构较为简单,故不多熬述。

main.xml是ListViewExampleActivity所使用的布局文件。在一个LinearLayout中包含了一个ListView。布局不是本文的主题,故在此不多熬述,可参见博客中的其他文章。

itemrow.xml是使用自定义ListView的另一关键。它使用一个RelativeLayout描述了单条项目中的图片、文本和CheckBox的相对位置关系。该内容亦不是本文的主题,更进一步的内容可参见博客中的其他文章。

简单地说,通过修改本范例中的refresh()函数、ItemAdapter中的getView()函数、ViewHolder类和itemrow.xml即可实现其他类型的ListView。

截图与资源

点此下载程序代码与资源

本文参加

第二届 Google 暑期大学生博客分享大赛 – 2011 Android 成长篇