android 输入法文本选择功能,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的生命周期:

0818b9ca8b590ca3270a3433284dd417.png

图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定义了元数据:

android:label="@string/fast_input_label"

android:permission="android.permission.BIND_INPUT_METHOD">

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

android:label="@string/fast_input_settings">

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/349179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python基础list_python基础操作---list

1 #coding:utf-82 list1 [physics, chemistry, 1997, 2000];3 list2 [1, 2, 3, 4, 5 ];4 list3 ["a", "b", "c", "d"];56 #切片功能跟str一样7 print "list1[0]: ", list1[0]8 print "list2[1:5]: ", list2[1:…

华为mate40RS能升级鸿蒙,mate40Pro和40RS能用上鸿蒙系统吗

[分享交流]mate40Pro和40RS能用上鸿蒙系统吗8886电梯直达huafen210861086新学乍练发表于 2020-12-18 12:30:08来自:HUAWEI Mate 40 Pro最新回复 2020-12-19 09:50:21如题好多人都说不能用上鸿蒙系统林泽徐独步江湖发表于 2020-12-18 12:30:52来自:HUAWEI…

在JShell中尝试Java9 HTTP客户端和Process API

这篇文章继续了My My Java 9 Features博客文章中对Java9功能的探索。 在这里,我们用在Java9 HTTP / 2客户端和进程API试验JShell HTTP / 2客户端 HTTP / 2客户端是Java9中的孵化器项目。 这意味着该API尚未最终确定,因此在将来的版本中仍有一定的更改范…

python怎么读取pdf文件_Python解析并读取PDF文件内容的方法

本文实例讲述了Python解析并读取PDF文件内容的方法。分享给大家供大家参考,具体如下:一、问题描述利用python,去读取pdf文本内容。二、效果三、运行环境python2.7四、需要安装的库pip install pdfminer五、实现源代码代码1(win64)# codingutf…

android记事本添加图片功能,安卓手机上有什么便签app既可以写日记又可以添加照片?...

原标题:安卓手机上有什么便签app既可以写日记又可以添加照片?当前,有很多人一直保持着写日记的习惯,因为这样可以及时记录自己的成长轨迹,使得自己可以追寻到时光的记忆,但是我们记录日记的工具&#xff0c…

python每行输出14个数_python – 计算pandas中每行的一些值的列数

需要更改isnull到notnull:#if first columns is not index, set itdata data.set_index(Site code)data[Count] data.notnull().sum(axis1)data data.set_index(Site code)data[Count] data.count(axis1)print (data)Col1 Col2 Col3 CountSite codeA5252 24.0 5…

Java命令行界面(第20部分):JSAP

JSAP ( Java Simple Argument Parser )2.1是本系列文章的第二十篇,重点是处理Java的命令行参数。 JSAP页面描述了该库存在的原因:“我在Internet上找到了几个解析器,所有解析器都处理了开关,但是在解析返回…

小米平板4android软件兼容吗,小米平板4有NFC功能吗 小米平板4支持NFC吗

小米平板4有NFC吗?小米平板4终于在诸多期待之下发布了,总的来说,小米平板4是一款性价比非常高的产品。所以没有带来太多惊喜的地方,但整体表现还是不错的。可以说是目前最便宜的骁龙660智能产品,性能中端。加上小米MIU…

监视器java_Java监视器绑定的超人

监视器java这是超人生活中的黑暗时期。 乔尔艾尔(Jor-El)希望他继续航行,为他的最终命运做好准备。 然而,地球面临着世界末日,正义联盟需要他们的钢铁侠行动来拯救世界。 但是,由于我们只有一个超人&#x…

坚果pro2s android 8,锤子坚果Pro2S 安卓8.1 稳定版 超级流畅 火力全开 智能调频 省电稳定 优化简约...

、该ROM本人已经测试通过,如因操作不当造成的后果,本人以及论坛一概不承担任何责任;2、刷机前请保证电池有60%以上的电量,并保证刷机过程中手机及电脑无任何异常;3、刷机有风险,第一次刷机者&am…

代码分析工具python_Python代码分析工具:PyChecker、Pylint

1 概述PyChecker是Python代码的静态分析工具,它能够帮助查找Python代码的bug,而且能够对代码的复杂度和格式等提出警告。PyChecker可以工作在多种方式之下。首先,PyChecker会导入所检查文件中包含的模块,检查导入是否正确&#xf…

flatMap()与concatMap()与concatMapEager()– RxJava常见问题解答

RxJava 2.x中共有三个无缝相似的运算符&#xff1a; flatMap() &#xff0c; concatMap()和concatMapEager() 。 它们都接受相同的参数-从原始流的单个项目到任意类型的&#xff08;子&#xff09;流的函数。 换句话说&#xff0c;如果您有Flowable<T>则可以为任意R类型提…

android的padding属性,以编程方式获取android:padding属性

从一个角度来看&#xff0c;如何以编程方式获取android&#xff1a;padding属性的值&#xff1f; 我目前正在使用&#xff1a;private static final String ANDROID_NAMESPACE "http://schemas.android.com/apk/res/android"; private static final String ATTRIBUT…

Java命令行界面(第25部分):JCommando

JCommando 网站 上将JCommando描述为“命令行参数的Java参数解析器”。 JCommando读取XML配置以生成一个Java类&#xff0c;该类处理Java应用程序中的解析。 在提供XML配置的 Java命令行解析库的本系列文章中&#xff0c;以前涵盖的唯一基于Java的库是JSAP &#xff0c;但这是该…

xss 全编码两次_XSS进阶

原标题&#xff1a;XSS进阶1、XSS常用语句及编码绕过XSS常用的测试语句有&#xff1a;●<>alert(1)>●●●常见的XSS的绕过编码有JS编码、HTML实体编码和URL编码。(1)JS编码JS提供了四种字符编码的策略&#xff0c;如下所示。●三个八进制数字&#xff0c;如果个数不够…

鸿蒙系统6月可升级,华为鸿蒙2.0系统大规模升级从6月开始?

你现在使用的智能手机是什么&#xff0c;苹果的iPhone手机&#xff0c;华为智能手机&#xff0c;小米手机还是其他智能手机。从操作系统来看目前的智能手机基本上可以分成iPhone手机跟安卓智能手机&#xff0c;其中iPhone手机使用的是iOS系统&#xff0c;而其他智能手机操作系统…

rstudio安装后如何打开_请问Rstudio安装后无法运行怎么弄?

---------------------------RStudio---------------------------The R session had a fatal error.ERROR system error 5 (&#xfffd;ܾ&#xfffd;&#xfffd;&#xfffd;&#xfffd;ʡ&#xfffd;) [pathC:/Users/&#xfffd;Ű&#xfffd;/AppData/Local/Temp/Rtm…

wso2 esb_WSO2 ESB的一种消息传递方式

wso2 esb正如我之前在WSO2 ESB工作时所发布的那样。 为了更好地理解此ESB&#xff0c;我一直在浏览示例 &#xff08;尚未完成所有示例 &#xff09;。 示例12是关于与ESB的单向消息传递&#xff0c;并使用TCP监视器使其可见。 我之前已经介绍过如何设置类似的工具“ TcpTunnel…

android 录像机,android 录像机

一直都做camera 录像功能其实知道的很少&#xff0c;以前也是迷迷糊糊知道怎么写个video&#xff0c;今天测试了一下&#xff0c;各种问题。问题来源首先是对于SDK的阅读不够仔细。 实践的比较少。 其实所谓的录像 就是两个类的结合 一个是Camera 一个是MediaRecorder 这两个类…

vue 圆形百分比进度条_uniapp Vue 圆环进度条

mode"aspectFill">export default {name: ,props: {},data() {return {animationData: {},audioCoverImg: ../../static/player/normal.png,}},created() {this.drawProgressbg()console.log("动画插件 已经onLoad");},mounted() {},methods: {updateIn…