扯淡:好久没有写博客,不,是好久没有认真写博客。以前都是随便写一下就扔掉了,今天新建了博客,打算重新开始,认真对待。也与大家分享我所学的知识,然本人才疏学浅,不足之处还望各位大佬多多指点。

正文:
今天和大家分享一下关于Android的键盘输入法的知识。
这是第一篇,先分享一下输入类型。

指定键盘类型android:InputType

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

Android会根据输入类型的不同使用不同的键盘

先举三个例子看看效果

* phone数字键盘

Android输入法键盘布局 安卓键盘输入法_Android输入法键盘布局


* textPassword”键密码

Android输入法键盘布局 安卓键盘输入法_Android输入法键盘布局_02


* android:inputType=”textAutoCorrect”开启拼写建议

Android输入法键盘布局 安卓键盘输入法_Text_03


下面是inputType值的大全:

* none输入普通字符

* text输入普通字符

* textCapCharacters输入普通字符

* textCapWords单词首字母大小

* textAutoCorrect前两个自动完成

* textAutoComplete前两个自动完成

* textMultiLine多行输入

* textImeMultiLine输入法多行(不一定支持)

* textNoSuggestions不提示

* textUriURI格式

* textEmailAddress–电子邮件地址格式

* textEmailSubject邮件主题格式

* textShortMessage短消息格式

* textLongMessage长消息格式

* textPersonName人名格式

* textPostalAddress邮政格式

* textPassword密码格式

* textVisiblePassword密码可见格式

* textWebEditText作为网页表单的文本格式

* textFilter文本筛选格式

* textAutoCorrect开启拼写建议

* textPhonetic拼音输入格式

* number数字格式

* numberSigned有符号数字格式

* numberDecimal可以带小数点的浮点格式

* phone拨号键盘

* datetime

* date日期键盘

* time时间键盘

* phone|textAutoCorrect|textCapSentences(多种结合)开启拼写建议并开启首字母大写并指定键盘类型

输入法行为android:imeOptions

默认Next或者Done,除非我们的文本框允许多行输入android:inputType=”textMultLine”

* android:imeOptions=”actionSend”发送

Android输入法键盘布局 安卓键盘输入法_Android输入法键盘布局_04


* android:imeOptinotallow=”actionSearch”

使用

.xml

<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" />

.java监听动作按钮的按压

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;
    }
});