语言
  • 中文
  • English
  • 日本語
  • Español
记住密码 
登录邮箱  密码 
移动Labs > 博客 > hotfly > 博文
Android(OPhone) 学习笔记 - 代码基础(2009-08-4,17:41:56)
标签: Android  OPhone  教程  笔记 
分类:默认分类

Android(OPhone) 学习笔记 - 代码基础

三、代码

这是OMSDN上的helloworld例程,接下来我们对该例程进行分析,初步了解一下如何编写OPhone代码,如果你具备面向对象基础,应该很容易理解。为了篇幅起见,暂时忽略localSearch函数的内容。


程序分成三个步骤,1.初始化,2.运行程序,3.输出结果。
1.在create之后,指定这个Activity的界面布局,需要从R中获得引用。

2.接下来定义两个String,这里用到了SearchProvider.TYPE_CALL。通过定义呼叫类型,采用localSearch函数将其读出并修改格式,显示在TextView上。SearchProvider为OPhone平台上的一个服务(“服务”前文介绍),该class提供了一个程序内部的搜索框架,文档说:Local search API consists of two parts, one is ContentProvider, which can parse given query string and return Cursor for hitting results, application using search ContentProvider need to handle the search result itself; another is Intent, which launch local search Activity with given arguments.该服务的TYPE_CALL是一个query string,即搜索对象的类型,这是呼叫的类型,还有如下类型:

3.创建一个TextView,这里我们注意到,创建时用到了资源的引用。

接下来,我们简要了解一下localsearch函数的功能。该函数并不是LocalSearch,区分大小写的哦。考虑到上传图片附件宽度限制,我将代码直接贴上来。
public String localSearch(String searchSelection) {

Uri uri = Uri.parse(SearchProvider.CONTENT_URI);
Cursor cursor = getContentResolver().query(uri, null, searchSelection,
null, null);
StringBuffer result = new StringBuffer();
result.append("#id #calltype #title #time(#duration)\n");
// print result out
while (cursor.moveToNext()) {
// Use cursor.respond function to get the data.
Bundle extras = new Bundle();
extras = cursor.respond(extras);
// Extract the data from search result
String id = extras.getString(SearchProvider.FIELD_ID);
String calltype = extras.getString(SearchProvider.FIELD_CALL_TYPE);
String title = extras.getString(SearchProvider.FIELD_TITLE);
long time = Long.parseLong(extras.getString(SearchProvider.FIELD_TIME));
int duration = Integer.parseInt(extras.getString(SearchProvider.FIELD_CALL_DURATION));
result.append("\n").append(id)
.append("\n[").append(calltype).append("]")
.append("\t").append(title)
.append("\t").append(new Date(time).toString())
.append("(").append(duration).append(")")
.append("\n");
}
cursor.close();
return result.toString();
}

4.一开始,出现了URI这个概念,URI是通过前面提到的 ContentProvider来想搜索行为发送Intent。 SearchProvider.CONTENT_URI实际上就是"content://search"。cursor 类似于查询结果的一个指针,通过getContentResolver函数来获得查询结果。

5.接下来的代码比较容易理解,通过下移查询指针,添加查询结果字符串,最后将指针关闭,返回查询结果的字符形式。

至此,HelloWorld全部介绍结束,运行结果如下图:


Labs推荐给你的
博文
报告
视频
新闻
帖子
阅读全文(1217) 评论(1)
评论
发表新评论>>
积分:792
 2009-08-4,18:10:16

继续抢占沙发

专业

移动Labs博客声明:
 1、 博客所发表的观点、意见及建议是出于自愿的,仅代表博主个人看法,并不代表本站观点。
 2、 移动Labs博客所有作品,转载时请标注博文作者与来源,注明如下文字:"作者:博主姓名(请加URL链接:该博主在移动Labs的博客地址),来源:移动Labs(请加URL链接:http://labs.chinamobile.com/)"
hotflyzx ^at^ gmail ^dot^ com
博客积分:861
博客日志:57篇
博客总访问量:54723

日志分类

日志存档

同类圈子