`
mmdev
  • 浏览: 13518354 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

Android学习笔记(二六):输入法

 
阅读更多

对Android设备,可能是无物理键盘,可能带键盘,也可能带数字键盘,这些都是可以处理的。

inputType:IME可自动适配所设的输入类型

如果没有物理键盘,当用户进入EditText的时候,将调起IME(Imput Method Editor)。一般情况下,IME都是智能地弹出,并不需要我们作任何的处理,但是在某些特定的情况下,例如一个多行EditText中,IME会覆盖部分的部分的内容,这时候,我们就需要考虑了。此外还有密码输入,限制类型输入(数字,电话好吗,日期,时间等),可以通过android:inputType来进行设定,inputType里面可以设置多个属性,实行“|”来分割,主义属性和"|"之间不要有空格。下面是一个例子

<?xml version="1.0" encoding="utf-8"?>
<TableLayout ...... android:stretchColumns="1">

<TableRow>
<TextView android:text="No Special rules:" />
<EditText /> <!--inputType缺省为text方式-->
</TableRow>
<TableRow>
<TextView android:text="Email address:" />
<EditText android:inputType="text|textEmailAddress" />
</TableRow>
<TableRow>

<TextView android:text="Signed decimal number:" />
<EditText android:inputType="number|numberSigned|numberDecimal" />
</TableRow>
<TableRow>

<TextView android:text="Date:" />
<EditText android:inputType="date" />
</TableRow>
<TableRow>

<TextView android:text="Multi-line text:" />
<EditText android:inputType="text|textMultiLine|textAutoCorrect" android:minLines="3" android:gravity="top"/>
</TableRow>
</TableLayout>

在《Begining Book》中给出的IME和我的模拟器的不一样,模拟器采用的是T9数字键盘方式,由于设置了不同的显示要求,因此键盘的出现也会有所不同。如下两图所示:

IME可通过确认键进行事件触发

最右下角的button成为accessory button,也就是确认键,我们可以通过android:imeOptions来设置相关的处理,例如:

<TextView android:text="Signed decimal number:" />
<EditText android:inputType="number|numberSigned|numberDecimal"

android:imeOptions="actionDone"/>

缺省地,按下accessroy button,将会focus到下一个editText,但是我们可以定制这个行文。例如上面的例子,当我们按确认键时,IME键盘将会消失,表示IME已经处理完了。我们看另外一个例子:

<EditText android:id="@+id/c10_send"
android:inputType="text|textEmailAddress"

android:imeOptions="actionSend"/>

这是一个Email地址格式,我们希望用户按了IME的确认键之后可以进行触发,在程序中如下处理,我们可以监测到IME_ACTION_SEND的actionId。:

TextView edit = (TextView)findViewById(R.id.c10_send);
edit.setOnEditorActionListener(new TextView.OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if(actionId == EditorInfo.IME_ACTION_SEND)
Log.d("WEI","Receive ime : IME_ACTION_SEND ");
return false;
}
});

IME的适配

在上面的例子中,如果我们点击第一个editText,IME会overlay最下面的widget,如果我们点击最下面的editText,整个layout就会向上scroll,这种成为pan适配方式。Android可以resize我们的acitivity,使其变小以便IME可以在activity的下面。这种是resize适配。在landscape模式(横屏)模式下,Android有可能会将IME全屏,覆盖整个acivity,这允许更大的软键盘方便用户输入。

一般的,Android会根据layout的情况选择pan方式或者resize方式,如果我们需要指定,可以在AndroidManifest.xml文件中的acivity里面设置android:windowSoftInputMode属性,下面是一个例子:

<activity android:name=".Chapter10.Chapter10Test2" android:label="@string/chapter_10_test2"
android:windowSoftInputMode="adjustResize"/>

我们将我们上面的例子最后一个EditText中android:minLines="5",使他具有更大空间,下面的两个图,左图采用缺省模式,右图,强制指定采用 android:windowSoftInputMode="adjustResize"模式。

相关链接:我的Andriod开发相关文章

分享到:
评论

相关推荐

    Android学习笔记(二六):输入法.doc

    在Android开发中,输入法(Input Method Editor,简称IME)是与用户交互的重要组成部分,尤其在没有物理键盘的设备上,IME提供了用户输入文本的方式。本文主要探讨Android中输入法的相关知识点,包括输入类型的设置...

    搜狗输入法

    1. 学习快捷键:搜狗输入法提供了一系列的快捷键操作,如Ctrl+Shift切换输入法,Ctrl+空格开启/关闭全角半角,熟练掌握这些快捷键,可以进一步提高输入效率。 2. 利用词库管理:用户可以根据自己的习惯调整词库,...

    日语手写输入法mazec3 v1.9.9

    日语手写输入法 mazec3 v1.9.9 当前版本:1.9.9 软件语言:多语言 软件类别:输入法 软件大小:25.79 MB 适用固件:2.2及更高固件 内置广告:没有广告 适用平台:Android *这是日本的手写识别应用程序。 *手写识别...

    Android高级应用源码-android的手写功能.rar

    在Android平台上,手写功能是许多应用程序不可或缺的一部分,特别是在教育、设计、笔记记录等领域。这份“Android高级应用源码-android的手写功能.rar”压缩包很可能包含了一个完整的Android项目,用于实现手写识别...

    android手写识别SDK

    ML Kit是Google提供的机器学习服务框架,旨在简化移动应用开发中的复杂AI功能集成,手写识别则是其中一项关键功能,尤其对于需要用户输入文本的场景,如笔记应用、表单填写或搜索查询等。 **手写识别工作原理** ...

    手写输入法。。。。。。。。。。

    例如,苹果的iOS系统内置了手写输入功能,称为“手写输入”,而Android系统则有多款知名的手写输入法应用,如百度输入法、搜狗输入法等。 除了手机和平板,手写输入法也在笔记本电脑、二合一本等设备上得到应用,...

    Android开发笔记 今天学到的一些属性

    在Android开发过程中,掌握各种属性的使用至关重要,因为它们直接影响着应用的界面设计、用户体验以及功能实现。...在实际开发中,还应结合Android SDK文档和其他学习资源,不断深化对这些属性的理解和使用。

    freeime最新版

    "FreeIME最新版"是一款专为中文输入设计的智能拼音输入法软件,旨在提供高效、流畅的输入体验。从描述中的重复提及“最新测试”可以推断,这可能是一个更新频繁、持续优化的产品版本,旨在不断提升用户体验和性能。 ...

    android handwriting

    2. **输入法引擎(IME)**:Android中的HandWritingIME.apk可能是一个手写输入法应用或组件。IME允许用户通过触摸屏进行手写输入,并可能包含实时识别和转换功能。 3. **API接口**:Android为开发者提供了手写输入...

    易信 QQ 微信 陌陌 表情 Android版

    标题中的“易信 QQ 微信 陌陌 表情 ...综上所述,这个压缩包内容涉及Android应用开发、数据库操作、UI设计、资源管理等多个方面,对于希望在Android应用中集成表情功能的开发者来说,提供了宝贵的学习和参考素材。

    robotium实例

    在测试记事本应用时,你可以模拟创建新笔记,编辑已有的笔记,删除笔记等操作,确保这些功能的正常运行。 7. **运行测试**:完成上述步骤后,你可以在Android Studio中运行测试类,查看测试结果。测试报告会展示每...

    计算机应用

    - **Android软件推荐**:介绍一些高质量的Android应用,尤其是通过非官方渠道获取的应用。 ##### 3. 市场快报与产品评测 - **无线键鼠套装推荐**:分析市场上性价比较高的无线键盘鼠标组合,为用户选购提供参考。 -...

    Windows7应用基础~习题集.doc

    【Windows 7应用基础】 Windows 7是一款由微软公司开发的个人计算机操作系统,适用于台式机和笔记本电脑。本习题集主要涵盖了Windows 7的基础操作,...学习这些知识能够帮助用户熟练地在Windows 7环境下进行日常操作。

    APP_UI.rar

    自动化个人学习第一步笔记import os import time import logging import configparser from appium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support import ...

    行业分类-设备装置-手写字符输入装置.zip

    8. **软件适配**:手写输入装置的软件部分通常需要与操作系统深度整合,如iOS的“手写板”功能或Android的“手写输入法”。开发者需要考虑不同平台的API接口和兼容性问题。 9. **应用场景**:手写输入广泛应用于...

    行业分类-设备装置-手写字体输入方法、移动终端及装置.zip

    在教育领域,学生和教师可以使用手写笔记功能,提高学习效率;在医疗领域,医生可以快速记录病历,减少错误;在设计和艺术创作中,手写输入为数字绘画提供了便捷的工具。此外,对于非英语国家的用户,手写输入尤其...

    电信设备-具有文字编辑功能的移动通信终端及其动作方法.zip

    这些设备通常搭载先进的操作系统,如Android或iOS,它们为用户提供了一个集通信、娱乐和工作于一体的平台。具有文字编辑功能意味着用户可以在设备上创建、修改和管理文档,不再局限于传统的个人电脑。 文档编辑功能...

Global site tag (gtag.js) - Google Analytics