现在的位置: 首页 > 综合 > 正文

Android InputMethod 教程

2013年10月10日 ⁄ 综合 ⁄ 共 2047字 ⁄ 字号 评论关闭

  结构
       继承关系

       public interface InputMethod extends
Object 

       android.view.inputmethod.InputMethod 

       类概述

       InputMethod 接口代表了输入法,它可生成按键事件,生成文本,如数字,email 地址,CJK字符,其它语言字符等等。在处理输入事件时,将文本返回至需要文本输入的应用程序。InputMethodManager 可得到更多关于架构的信息。应用程序通常不使用这个接口本身,而是依靠TextView和EditText提供的标准交互。输入法实现通常为
InputMethodService 及其子类的派生。在实现输入法时,包含它的服务控件必须提供 SERVICE_META_DATA 元数据字段,该元数据字段联接至一包含输入法细节的XML资源。所有输入法也必定要求客户端包含 BIND_INPUT_METHOD 以便与服务控件交互。如果不这样,系统将无法使用输入法,因其无法确认是否完整。InputMethod 接口实际上分为两部分:接口是输入法的最高级接口,提供所有的访问,

只有系统能访问(需要 BIND_INPUT_METHOD 权限)。另外调用方法createSession(android.view.inputmethod.InputMethod.SessionCallback)可实例化,InputMethodSession 副接口,用于与客户端通讯。

       内部类

       interface InputMethod.SessionCallback 

       常量
       public static final String SERVICE_INTERFACE

       接口名字,实现输入法的服务应说明它支持输入法,也就是它将用于意向过滤器(intent filter)。服务还需要BIND_INPUT_METHOD 权限,这样应用程序不会滥用它。
       常量值: "android.view.InputMethod" 

       public static final String SERVICE_META_DATA
       输入法通过此名字发布其自身信息。此元数据必须引用一个包含< input-method>标签的XML 资源。
       常量值: "android.view.im"  

       public static final int SHOW_EXPLICIT
       用于showSoftInput(int, ResultReceiver)的标志:它表示用户显式地要求其(软键盘)显示。如果没有设置,系统决定可能是一个好主意,显示输入法在用户界面上的导航操作。
       常量值: 1 (0x00000001) 

       public static final int SHOW_FORCED
       标志用于 showSoftInput(int, ResultReceiver):表明用户强制其(软键盘)显示。如设置,输入法保持可见直至用户在 UI 上取消。
       常量值: 2 (0x00000002) 

       公共方法

       public abstract void attachToken (IBinder
token)
 
       输入法创建后首先被调用,它提供一个与系统服务会话的唯一令牌。它需要通过服务识别输入法从而验证其操作。令牌不能传递给应用程序,因其取得了应用程序不应得到的特殊权限。
       注意:为避免恶意客户端伤害,你应只接收第一个令牌。其后可能来自客户端。

       public abstract void bindInput (InputBinding
binding)
 
       将输入法与新的应用程序环境绑定,以便稍后启动、停止输入处理。通常在应用程序第一次启用输入法时调用此方法。

       参数
       binding与输入法绑定的应用程序窗口信息。

       参见
       InputBinding  
       unbindInput() 

       public abstract void createSession
(InputMethod.SessionCallback callback)
 
       创建一个新的 InputMethodSession,它可处理客户应用程序与输入法的交互。你可以随后用 revokeSession(InputMethodSession)销毁会话,这样就不会有任何客户端使用它。

        参数
        callback   新创建会话调用的接口。

       public abstract void hideSoftInput
(int flags, ResultReceiver resultReceiver)
 
        将输入法的软键盘(soft input)部分对用户隐藏。

        参数
        flags    显示要求的附加信息。当前总是 0。
        resultReceiver    向要求显示的客户端通知结果。其结果可能为

抱歉!评论已关闭.