Android基础知识之拼写检查框架
原文:http://android.eoe.cn/topic/android_sdk
拼写检查器框架
Android平台提供了一个拼写检查器的框架,来方便你在你的应用中实现并使用拼写检查。这个框架是Android平台提供的文字服务API之一。
要在你的应用中使用该框架,你需要创建一个特殊的AndroidService来生成一个拼写检查器会话对象。这个会话对象会基于你提供的文字,来返回拼写检查器生成的拼写建议。
以下的图表显示了拼写检查器服务的生命周期:
http://developer.android.com/resources/articles/images/spellcheck_lifecycle.png
图1.拼写检查器服务的生命周期。
为了初始化拼写检查,你的应用必须实现它自己的拼写检查器服务。你应用中的客户端,比如activity,或是独立的UI元素,需要从服务中获取一个拼写检查器会话,然后使用该会话为文本获取拼写建议。当一个客户端停止它的活动时,它结束自己的会话。你的应用可以在必要时,随时关闭拼写检查器服务。
为了在你的应用中使用拼写检查器框架,你需要添加一个包含会话对象实现的拼写检查器服务组件。你也可以为你的应用增加一个可选的activity来控制设置。你也必须添加一个元数据xml文件来描述拼写检查器服务,并在manifest文件中增加适当的元素。
拼写检查类。
用以下的类来定义服务和会话对象:
一个SpellCheckerService的子类。
:SpellCheckerService实现了Service类和拼写检查器框架接口,在你的子类中,你必须实现以下方法:
:createSession())
::这是一个工厂方法,它为客户端返回一个 SpellCheckerService.Session 对象来实现拼写检查。
:查看Spell Checker Service样例应用,来学习更多实现该类的知识。
一个SpellCheckerService.Session的实现。
:这是一个拼写检查器服务给客户提供的对象,来让他们把文字传递给拼写检查器并接收提示。在这个类里,你必须实现以下方法:
:onCreate())
::这是createSession())的系统回调函数,在这个方法中,你可以基于本地化以及其它内容,初始化SpellCheckerService.Session对象。
:[http://developer.android.com/reference/android/service/textservice/SpellCheckerService.Session.html#onGetSentenceSuggestionsMultipleandroid.view.textservice.TextInfo[](, int) onGetSentenceSuggestionsMultiple()]
::该函数真正来进行拼写检查,它返回一个SentenceSuggestionsInfo数组,该数组包含了传入句子的提示。
:你也可以实现一些可选的函数,比如onCancel())是用来处理取消拼写检查的请求,int) onGetSuggestions()是用来处理一个词提示请求,或者int) onGetSuggestionsMultiple()是用来处理一组词的提示的请求。
:查看Spell Checker Service例子应用来学习更多。
注意:你必须把拼写检查设为异步和线程安全的。一个拼写检查器可能被在不同核心上的不同的线程同时调用。SpellCheckerService 和 SpellCheckerService.Session自动实现了上述要求。
拼写检查器的声明和元数据
除了代码以外,你需要为拼写检查器提供合适的manifest文件和元数据文件。
mainifestt文件定义了应用,服务,以及用于设置的活动,如下示:
1 |
<meta-data |
注意想要使用该服务的组件需要使用BIND_TEXT_SERVICE的许可来确保系统绑定该服务。该服务的定义中还确定了spellchecker.xml元数据文件,这将在下一节给出。
元数据文件spellchecker.xml的内容如下:
元数据里确定了拼写检查器用于控制设置的activity。它还定义了拼写检查器的子类;在这种情况下,子类定义了拼写检查器适用的地区。
使用TextView视图应用自动获取拼写检查,因为TextView会自动使用一个拼写检查器。如下截图所示:
http://developer.android.com/resources/articles/images/textview_spellcheck_screenshot_2.png
图2.TextView中的拼写检查
然而在其它情况下,你可能也想要直接与拼写检查器服务进行交流。如下图表是直接与拼写检查器交流的控制流程:
http://developer.android.com/resources/articles/images/spellcheck_client_flow.png
图3.与一个拼写检查器服务交互。
Spell Checker Service例子应用,将教你如何与一个拼写检查服务进行交互。Android Open Source Project里的LatinIME输入法编辑器里也有一个拼写检查的例子。
Android基础知识之拼写检查框架的更多相关文章
- 【Xamarin开发 Android 系列 4】 Android 基础知识
原文:[Xamarin开发 Android 系列 4] Android 基础知识 什么是Android? Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Li ...
- Java基础知识强化之集合框架笔记76:ConcurrentHashMap之 ConcurrentHashMap简介
1. ConcurrentHashMap简介: ConcurrentHashMap是一个线程安全的Hash Table,它的主要功能是提供了一组和Hashtable功能相同但是线程安全的方法.Conc ...
- Android基础知识(一)
前言 前言 从软件测试最终目的发现问题缺陷来看,Findyou比较认同一个观念,测试的能力大致可以划分成三个能力层次:发现问题.定位问题.预防问题.有机会探讨一下这个分类. 发现问题各种方式方法,比如 ...
- Android基础知识巩固:关于PendingIntent和广播
平时使用广播的场合比较多,但细节的东西,看过了也没有总结,以至于某些场合有小问题,还是要把原理和属性搞清楚才能运用自如. 其实也是自己比较懒,先看别人的blog,有个概念再去官网看英文的能好理解一些. ...
- android开发学习---linux下开发环境的搭建&& android基础知识介绍
一.配置所需开发环境 1.基本环境配置 JDK 5或以上版本(仅有JRE不够) (http://www.oracle.com/technetwork/java/javase/downloads/ind ...
- Android基础知识之API等级介绍
原文:http://android.eoe.cn/topic/android_sdk :可以让开发者通过一个表示API级别的整数来描述程序在android平台上的兼容性,系统会将与系统本身提供的API ...
- 看看android基础知识,谁帮我作答
无论怎么着,了解一点android的基本知识还是有必要的,就当开阔一些自己的眼界吧. .. . android的四大功能组件是_activity_,_service_,_BroadcastReceiv ...
- Android基础知识学习
IPC (Inter-Process Communication) 意思是: 进程间的通信,是指两个进程之间进行数据交换的过程. Android中如何开启多进程呢? 只需要给四大组件(Activit ...
- android基础知识:SharedPreferences和PreferenceActivity
1.android文件存储 对Android系统了解的都知道,Android系统有四种基本的数据保存方法,一是SharedPreference,二是文件,三是SQLite,四是ContentProvi ...
随机推荐
- J2EE框架知识清单
1:Struts MVC.JVC 2:struts action 3:struts 1.0和2.0区别 4:Spring 核心机制:依赖注入 5:使用Spring容器 6:AOP的概念与应用 7:IO ...
- [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链
应用场景:图片等资源须要设置权限,如:仅仅有认证过的用户才干訪问自己的图片. 解决的方法:使用Nginx的防盗链模块http_secure_link能够实现,该模块默认情况下不包括.故在安装时要加上- ...
- 浅谈Spring的PropertyPlaceholderConfigurer
大型项目中,我们往往会对我们的系统的配置信息进行统一管理,一般做法是将配置信息配置与一个cfg.properties的文件中,然后在我们系统初始化的时候,系统自动读取cfg.properties配置文 ...
- 搭建Docker私有仓库--自签名方式
为了能集中管理我们创建好的镜像,方便部署服务,我们会创建私有的Docker仓库.通读了一遍官方文档,Docker为了确保安全使用TLS,需要CA认证,认证时间长的要钱啊,免费过期时间太短,还是用自签名 ...
- 开启spring boot actuator 安全认证
通过本文配置,会对actuator 除了health外的所有端点,开启用户名密码验证,对于自己开发的接口不会要求用户名密码验证. 版本: <parent> <groupId>o ...
- 一个还不错的gridview 样式【Z】
<style type="text/css"> <!-- .datable {background-color: #9FD6FF; color:#333333; ...
- ios中键盘处理适合ipad 和iphone
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWasShown:) name:UI ...
- asiHttpRequst 学习地址
最全面的地址 http://blog.csdn.net/uxyheaven/article/details/7884734 http://allseeing-i.com/ASIHTTPRequest/ ...
- 详解SpringMVC中Controller的方法中参数的工作原理——基于maven
转自:http://www.tuicool.com/articles/F7byQn 前言 SpringMVC是目前主流的Web MVC框架之一. 如果有同学对它不熟悉,那么请参考它的入门blog:ht ...
- spring hiberante 集成出现异常 java.lang.ClassNotFoundException: org.hibernate.engine.SessionFactoryImplementor
出现如题的异常是由于hibernate和spring集成时的的版本不一致所导致. 如下面,所示,如果你用的hibneate 4.0及以上版本,那么将会报错,因为这里用的事务管理是hibernate 3 ...