Android官方开发文档Training系列课程中文版:键盘输入处理之指定输入的类型

原文地址:http://android.xsoftlab.net/training/keyboard-input/index.html

引言

在文本框接收到焦点时,Android系统会在屏幕上显示一个软键盘。为了提供良好的用户体验,你可以指定相关输入类型的特性,以及输入法应当如何展现。

除了屏幕上的软键盘之外,Android还支持实体键盘,所以APP如何与各种类型的键盘交互这件事情,就变得很重要了。

指定输入的类型

每一个文本框必定只有一种输入类型,比如一个电子邮件地址,一个电话号码或者是常规文本。所以为每一个文本框指定输入类型就变得很重要,这样的话系统才会显示正确的输入法。

你可以指定比如输入方法所提供的拼写建议、首字母大写、以及输入法右下角按钮的行为(Done或者Next)。这节课主要介绍如何指定这些特性。

指定键盘类型

你应该总是为文本框声明输入类型,通过android:inputType属性可以为文本框添加输入类型。

比如,如果你希望文本框的输入类型为电话号码,可以使用”phone”:

<EditText
    android:id="@+id/phone"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="@string/phone_hint"android:inputType="phone" />

或者如果文本框主要是用于输入密码的,可以使用”textPassword”隐藏用户的输入文本:

<EditText
    android:id="@+id/password"android:hint="@string/password_hint"android:inputType="textPassword"... />    

android:inputType含有多种指定的输入类型,并且一些值可以组合使用。

开启拼写检查与其它功能

android:inputType属性允许你可以为输入类型指定多种行为。更重要的一点是,如果文本框的重点在基础文本输入上(如文本消息),你应当使用”textAutoCorrect”开启拼写检查。

你还可以为android:inputType属性指定多种不同的行为以及输入类型。比如,下面的例子就展示了如何同时开启首字母大写以及拼写检查的功能:

<EditText
    android:id="@+id/message"android:layout_width="wrap_content"android:layout_height="wrap_content"android:inputType="textCapSentences|textAutoCorrect"... />

指定输入法按钮的行为

大多数的输入法都在右下角提供了一个用户功能按钮,这对于当前的文本框来说是极为恰当的。在默认情况下,系统使用这个按钮来实现Next或者Done功能。除非你的文本框允许多行情况的出现(比如使用了android:inputType=”textMultiLine”)。在这种情况下,该功能按钮是一个回车按钮。然而,你可以指定一些更加符合你文本框的特别功能,比如SendGo

为了指定键盘的功能按钮,需要使用属性android:imeOptions,并需要执行比如”actionSend”或”actionSearch”之类的值:

<EditText
    android:id="@+id/search"android:layout_width="fill_parent"android:layout_height="wrap_content"android:hint="@string/search_hint"android:inputType="text"android:imeOptions="actionSend" />

接下来可以通过TextView.OnEditorActionListener来监听功能按钮的按下事件,并需要在该监听器内响应正确的IME功能ID,该ID定义与EditorInfo中,比如下面使用的就是IME_ACTION_SEND:

EditText editText = (EditText) findViewById(R.id.search);
editText.setOnEditorActionListener(new OnEditorActionListener() {@Overridepublic boolean onEditorAction(TextView v, int actionId, KeyEvent event) {boolean handled = false;if (actionId == EditorInfo.IME_ACTION_SEND) {sendMessage();handled = true;}return handled;}
});

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

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

相关文章

美团 R 语言数据运营实战

一、引言 近年来&#xff0c;随着分布式数据处理技术的不断革新&#xff0c;Hive、Spark、Kylin、Impala、Presto 等工具不断推陈出新&#xff0c;对大数据集合的计算和存储成为现实&#xff0c;数据仓库/商业分析部门日益成为各类企业和机构的标配。在这种背景下&#xff0c;是…

天天说常识推理,究竟常识是什么?

文 | 花小花Posy写这篇文章的时候&#xff0c;我去搜了搜常识的例子。“睁开眼睛打喷嚏是不可能的。&#xff08;还真没留意。&#xff09;““北极熊是左撇子。“”长颈鹿没办法咳嗽。”呃&#xff1f;好吧&#xff0c;我需要补一补自己的常识。那么这些所谓的“常识”真的是常…

论文笔记 | Counterfactual Samples Synthesizing for Robust VQA

论文笔记整理&#xff1a;窦春柳&#xff0c;天津大学硕士。来源&#xff1a;CVPR 2020链接&#xff1a;https://openaccess.thecvf.com/content_CVPR_2020/papers/Chen_Counterfactual_Samples_Synthesizing_for_Robust_Visual_Question_Answering_CVPR_2020_paper.pdf动机当今…

Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus

背景 对于Android系统来说&#xff0c;消息传递是最基本的组件&#xff0c;每一个App内的不同页面&#xff0c;不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信&#xff0c;也可用于异步线程和主线程之间的通信。对于Android开发者来说&#xff0c;经常…

论文浅尝 - ICLR2020 | 知道什么、如何以及为什么:基于方面的情感分析的近乎完整的解决方案...

论文笔记整理&#xff1a;余海阳&#xff0c;浙江大学硕士&#xff0c;研究方向为知识图谱、自然语言处理。链接&#xff1a;https://arxiv.org/abs/1911.01616动机基于目标的情感分析或基于方面的情感分析&#xff08;ABSA&#xff09;是指在细粒度的层次上解决各种情感分析任…

全栈深度学习第5期: 神经网络调试技巧

一起追剧鸭简介Berkeley全栈深度学习追剧计划是由夕小瑶的卖萌屋发起的优质公开课打卡项目&#xff0c;通过微信群为同期追剧的小伙伴提供交流平台。关于该计划的详请见这里。Berkeley深度学习追剧群目前已有1000小伙伴加入&#xff0c;公众号后台回复口令 深度学习追剧 入群。…

LeetCode 22. 括号生成(回溯/DP)

文章目录1. 题目2. 解题2.1 暴力回溯2.2 DP1. 题目 给出 n 代表生成括号的对数&#xff0c;请你写出一个函数&#xff0c;使其能够生成所有可能的并且有效的括号组合。 例如&#xff0c;给出 n 3&#xff0c;生成结果为&#xff1a;["((()))","(()())",…

美团服务体验平台对接业务数据的最佳实践-海盗中间件

背景 移动互联网时代&#xff0c;用户体验为王。美团服务体验平台希望能够帮助客户解决在选、购、用美团产品过程中遇到的各种问题&#xff0c;真正做到“以客户为中心”&#xff0c;为客户排忧解难。但服务体验平台内部只维护客户的客诉数据&#xff0c;为了精准地预判和更好地…

中文近义词工具包:Synonyms

Synonyms Chinese Synonyms for Natural Language Processing and Understanding. 更好的中文近义词&#xff1a;聊天机器人、智能问答工具包。 synonyms可以用于自然语言理解的很多任务&#xff1a;文本对齐&#xff0c;推荐算法&#xff0c;相似度计算&#xff0c;语义偏移…

惊了,掌握了这个炼丹技巧的我开始突飞猛进

文 | 夕小瑶从不拖稿的小夕今天在知乎上刷到一个问题&#xff1a;哈&#xff1f;一向求真务实、高逼格讨论的知乎画风怎么突然就不一样了。我以为回答区会有这张图&#xff1a;▲如来神掌结果竟然没有&#xff01;知乎果然没有让我失望&#xff0c;还是一如既往的认真、严谨、有…

LeetCode 876. 链表的中间结点(快慢指针)

1. 题目 给定一个带有头结点 head 的非空单链表&#xff0c;返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 2. 解题 快慢指针法 class Solution { public:ListNode* middleNode(ListNode* head) {ListNode *fast head, *slow head;while(f…

技术动态 | 多模态知识图谱

本文转载自漆桂林老师的知乎专栏。原文链接&#xff1a;https://zhuanlan.zhihu.com/p/163278672作者&#xff1a;郑秋硕&#xff0c;漆桂林&#xff0c;王萌知识图谱技术已经被广泛用于处理结构化数据&#xff08;采用本体D2R技术&#xff09;和文本数据&#xff08;采用文本信…

美团配送系统架构演进实践

写在前面 美团配送自成立以来&#xff0c;业务经历了多次跨越式的发展。业务的飞速增长&#xff0c;对系统的整体架构和基础设施提出了越来越高的要求&#xff0c;同时也不断驱动着技术团队深刻理解业务、准确定位领域模型、高效支撑系统扩展。如何在业务高速增长、可用性越来越…

Python字符串模糊匹配库FuzzyWuzzy

Python字符串模糊匹配库FuzzyWuzzy 在计算机科学中&#xff0c;字符串模糊匹配&#xff08;fuzzy string matching&#xff09;是一种近似地&#xff08;而不是精确地&#xff09;查找与模式匹配的字符串的技术。换句话说&#xff0c;字符串模糊匹配是一种搜索&#xff0c;即使…

机器学习梗图大赏

文 | 白鹡鸰图 | 白鹡鸰 小轶大家好呀&#xff0c;我是日常遭到小轶摁头赶稿的白鹡鸰&#xff5e;最近的投稿高峰期各位都过得如何呢&#xff1f;白鹡鸰要偷偷爆料&#xff0c;最近的小轶可是超级辛苦的&#xff5e;不过白鹡鸰还很轻松&#xff0c;毕竟已经决定赶300天以后的dd…

论文浅尝 - ACL2020 | 用于关系三元组抽取的级联二进制标记框架

论文笔记整理&#xff1a;王中昊&#xff0c;天津大学。来源&#xff1a;ACL2020链接&#xff1a;https://arxiv.org/pdf/1909.03227.pdf摘要从非结构化文本中提取关系三元组是构建大规模知识图的关键。然而&#xff0c;对于同一句子中的多个关系三元组共享同一个实体的重叠三元…

美团客户端响应式框架 EasyReact 开源啦

前言 EasyReact 是一款基于响应式编程范式的客户端开发框架&#xff0c;开发者可以使用此框架轻松地解决客户端的异步问题。 目前 EasyReact 已在美团和大众点评客户端的部分业务中实践&#xff0c;并且持续迭代了一年多的时间。近日&#xff0c;我们决定开源这个项目的 iOS Ob…

LeetCode 897. 递增顺序查找树(中序遍历)

1. 题目 给定一个树&#xff0c;按中序遍历重新排列树&#xff0c;使树中最左边的结点现在是树的根&#xff0c;并且每个结点没有左子结点&#xff0c;只有一个右子结点。 示例 &#xff1a;输入&#xff1a;[5,3,6,2,4,null,8,1,null,null,null,7,9]5/ \3 6/ \ \2 4…

谈谈怎样提高炼丹手速

文 | 夕小瑶最近搞定几件焦头烂额的大事后&#xff0c;终于有了一丢丢的时间来写写文章&#xff0c;并且偶尔思考下算法工程师的核心竞争力是什么。前不久一时兴起写了篇标题党文章《惊了&#xff01;掌握了这个炼丹技巧的我开始突飞猛进》&#xff0c;简单描述了一下我的升级打…

论文浅尝 | 神经协同推理

论文笔记整理&#xff1a;叶橄强&#xff0c;浙江大学计算机学院&#xff0c;知识图谱和知识推理方向。Paper link: https://arxiv.org/abs/2005.08129Github link: https://github.com/Scagin/NeuralLogicReasoning背景&#xff1a;推荐任务推荐作为一种认知智能任务&#xff…