广

android开发

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

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

    2018-04-04 08:35:26 次阅读 稿源:互联网
    广告

    输入法编辑器(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设置的直接访问。

    一起学吧部分文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与一起学吧进行文章共享合作。

    广告
    广告
    广告