android指定输入法类型
2015-08-13 11:15
375 查看
编写:zhaochunqi - 原文:http://developer.android.com/training/keyboard-input/style.html每个文本框都对应特定类型的文本输入,如Email地址,电话号码,或者纯文本。为应用中的每一个文本框指定输入类型是很重要的,这样做可以让系统展示更为合适的软输入法(比如虚拟键盘)。除了输入法可用的按钮类型之外,我们还应该指定一些行为,例如,输入法是否提供拼写建议,新的句子首字母大写,和将回车按钮替换成动作按钮(如 Done 或者 Next)。这节课介绍了如何添加这些属性。
指定键盘类型
通过将 android:inputType 属性添加到 <EditText> 节点中,我们可以为文本框声明输入法。举例来说,如果我们想要一个用于输入电话号码的输入法,那么使用"phone"值:
<EditText android:id="@+id/phone" android:layout_width="fill_parent" android:layout_height="wrap_content" android:hint="@string/phone_hint" android:inputType="phone" />Figure 1.
phone输入类型或者如果文本框用于输入密码,那么使用
"textPassword"值来隐藏用户的输入:
<EditText android:id="@+id/password" android:hint="@string/password_hint" android:inputType="textPassword" ... />Figure 2.
textPassword输入类型有几种可供选择的值在
android:inputType记录在属性中,一些值可以组合起来实现特定的输入法外观和附加的行为。
开启拼写建议和其它行为
android:inputType 属性允许我们为输入法指定不同的行为。最为重要的是,如果文本框用于基本的文本输入(如短信息),那么我们应该使用"textAutoCorrect"值来开启自动拼写修正。Figure 3. 添加
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"),这种情况下,动作按钮就是回车换行。然而,我们可以指定一些更适合我们文本框的额外动作,比如 Send 和 Go。Figure 4. 当我们声明了
android:imeOptions="actionSend",会出现 Send 按钮。使用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" />然后,我们可以通过为 EditText 节点定义 TextView.OnEditorActionListener 来监听动作按钮的按压。在监听器中,响应 EditorInfo 类中定义的适合的IME action ID,如 IME_ACTION_SEND 。例如:
EditText editText = (EditText) findViewById(R.id.search); editText.setOnEditorActionListener(new OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { boolean handled = false; if (actionId == EditorInfo.IME_ACTION_SEND) { sendMessage(); handled = true; } return handled; }
});
转发自:http://hukai.me/android-training-course-in-chinese/input/keyboard-input/type.html[/code]
相关文章推荐
- Android JNI Lame编解码实现wav到MP3的转换
- Android AIDL使用步骤
- android开发 获取父控件的高宽
- Android 布局之LinearLayout和RelativeLayout
- android几种不同对话框的实现方式
- android中string.xml文件的用法
- android 应用如何实现多个Activity在栈中finish掉
- post,get产生乱码的现象
- Android系统启动流程
- Android ListView和Fragment结合使用,类似于某电商的实现,拿来就能用,详细标注适合新手
- Android ListView和Fragment结合使用,类似于某电商的实现,拿来就能用,详细标注适合新手
- Android新控件RecyclerView剖析
- android绘制view的过程
- Android系统编译原理
- Android eclipse 提示java代码 快捷键
- 使用 adb logcat 显示 Android 日志
- (转)Android和JavaScript互相调用
- Android 屏幕适配方案
- Android 下拉列表框(spinner)
- Android中 在开启的多个Activity中关闭特定的Activity的方法