Android的文本和输入之创建输入法教程

 更新时间:2012年12月20日 11:36:37   转载 作者:  
输入法编辑器(IME)是让用户输入文本的控件,Android提供了一个可扩展的的输入法的框架,它允许应用程序给用户提供另外的输入法,如软键盘或语音输入,需要的朋友可以了解下

输入法编辑器(IME)是让用户输入文本的控件。Android提供了一个可扩展的的输入法的框架,它允许应用程序给用户提供另外的输入法,如软键盘或语音输入。这些输入法一旦安装,用户就可以从系统的设置中选择他们想要使用的IME,并且这个设置对整个系统都是有效的,每次只有一种输入法是可用的。

要在Android系统中添加一种输入法,你就要创建一个包含继承了InputMethodService类的类应用程序。另外,你通常还要创建一个“settings”Activity,把选项传递给IME服务。你还可以定义一个用于设置的UI,让它做为系统设置的一部分来显示。

本文包含以下内容

1. IME的生命周期。

2. 在应用程序的清单中声明IME组件;

3. IME API

4. 设计IME的UI

5. 从IME中把文本发送给应用程序

6. 使用IME子类型

IME的生命周期

下图介绍IME的生命周期:

图1.IME的生命周期

下列章节介绍如何实现UI以及代码如何跟这个生命周期相关联。

在清单中生命IME组件

在Android系统中,IME是一个包含了特殊IME服务的Android应用程序。应用程序的清单文件必须声明服务、申请必要的权限、提供跟action.view.InputMethod操作相匹配的Intent过滤器、以及定义IME的特性的元数据。另外,还要提供一个设置界面,允许用户用它来编辑IME的行为,你可以定义一个从系统设置中能够启动的“settings”的Activity。

以下清单片段声明了IME服务。它申请了允许把服务连接到系统的IME的BIND_INPUT_METHOD权限,建立了一个跟android.view.InputMethod操作相匹配的Intent过滤器,并且给IME定义了元数据:

复制代码 代码如下:

<!-- Declares the input method service -->
<service android:name="FastInputIME"
android:label="@string/fast_input_label"
android:permission="android.permission.BIND_INPUT_METHOD">
<intent-filter>
<action android:name="android.view.InputMethod" />
</intent-filter>
<meta-data android:name="android.view.im" android:resource="@xml/method" />
</service>

接下来给IME声明了用于设置的Activity。它有一个ACTION_MAIN类型的Intent过滤器,这指明了该Activity是IME应用程序的主入口:
复制代码 代码如下:

<!-- Optional: an activity for controlling the IME settings -->
<activity android:name="FastInputIMESettings"
android:label="@string/fast_input_settings">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
</intent-filter>
</activity>

你还可以在这个设置的UI中提供对IME设置的直接访问。

相关文章

  • Android应用接入微信分享的实例代码

    Android应用接入微信分享的实例代码

    本篇文章主要介绍了Android应用接入微信分享的实例代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-07-07
  • Android中复制图片的实例代码

    Android中复制图片的实例代码

    本文通过实例代码给大家介绍了android 复制图片的实现方法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-08-08
  • Android项目实现黑名单拦截效果

    Android项目实现黑名单拦截效果

    本篇文章主要介绍了Android项目实现黑名单拦截效果,可以根据白名单或者黑名单拦截,测试可以拦截电话,有需要的朋友可以了解一下。
    2016-10-10
  • 安卓版微信小程序跳一跳辅助

    安卓版微信小程序跳一跳辅助

    这篇文章主要为大家详细介绍了安卓版微信小程序跳一跳辅助,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Android中如何优雅的处理重复点击实例代码

    Android中如何优雅的处理重复点击实例代码

    这篇文章主要给大家介绍了关于Android中如何优雅的处理重复点击的相关资料,文中通过示例代码介绍的非常详细,对各位Android开发者们具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-09-09
  • 实现Android 滑动退出Activity的功能

    实现Android 滑动退出Activity的功能

    这篇文章主要介绍了实现Android 滑动退出Activity的功能的相关资料,这里提供实例来说明滑动退出应用程序的实现代码,需要的朋友可以参考下
    2017-08-08
  • Flutter质感设计之表单输入

    Flutter质感设计之表单输入

    这篇文章主要为大家详细介绍了Flutter质感设计之表单输入,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-08-08
  • Android系统模拟位置的使用方法

    Android系统模拟位置的使用方法

    这篇文章主要为大家详细介绍了Android系统模拟位置的使用方法,具有参考价值,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Android自定义View仿QQ健康界面

    Android自定义View仿QQ健康界面

    这篇文章主要为大家详细介绍了Android自定义View仿QQ健康界面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-06-06
  • Android开启新线程播放背景音乐

    Android开启新线程播放背景音乐

    这篇文章主要为大家详细介绍了Android开启新线程播放背景音乐,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-12-12

最新评论