Android EditText InputType相关——if(dosen't work)小心你的输入法

今天在对一个proj输入做些许修改的时候,因为要对EditText输入进行规范,所以查了下API,找到了inputType属性可以对EditText的输入进行规范,所以就很开心地用了。这里简单介绍一下inputType属性所接收的各属性值、作用以及使用方法。


1、在xml中使用

在xml中使用,只需要简单地指定android:inputType的属性值就可以了。比较常用的属性值有:

"textCapSentences"  大写句子句首字母

"textCapWords" 大写每个单词开头字母

"textAutoCorrect" 自动纠正不正确拼写

"textMultiLine" 允许多行输入

一个例子:

<EditText
    android:id="@+id/postal_address"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:hint="@string/postal_address_hint"
    android:inputType="textPostalAddress|
                       textCapWords|
                       textNoSuggestions" />

2、在Java代码中设置

在代码中设置的方法其实和xml中的实现完全类似,直接举个例子:

EditText testEditText = (EditText) findViewById(R.id.test_editText);
    testEditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_WORDS);
Voilà!


然后在如此设置好后,在机子上一跑,2了,什么反应都没有...于是我就郁闷了,双管齐下,在xml和代码中分别设置,还是doesn't work。于是就最后一招stackoverflow了...发现在stackoverflow上,相关的capitalize问题回答都是设置inputType相关的属性。有些回答在追问中,详细描述了平台和系统版本,都说就这样能实现需求。看到这里我就郁闷了,因为我的还是没有任何效果。然后这时候进来一条同学的短信,开始回短信的时候切换成英文输入,突然想到,老外都是直接输拉丁字母的,回答者都说这样就可以实现需求,是不是要用系统自带的输入法?lz本来使用的是百度输入法,当然我觉得百度中文输入还是很不错的,字母按钮够大,表情标点什么的也插入方便。有这样的想法后就马上去切换到了系统自带的输入法,发现,嗯,真的可以了。


接下来就是忍痛删了百度输入法,下了个googel拼音,虽然我觉得google拼音很好,但是有点小的字母按钮,让我这种指头不敏感人士,有点像母猪弹钢琴的感觉...


thus,马上写篇博客分享一下,给自己和大家一个小tip.


good good study, day day up:)

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值