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

来源:互联网 发布:外贸原单女装淘宝店 编辑:程序博客网 时间:2024/06/06 07:34
三、代码

这是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全部介绍结束,运行结果如下图:


原创粉丝点击