设为首页 加入收藏

TOP

关于EditText的一点深入的了解
2015-12-01 14:11:41 来源: 作者: 【 】 浏览:5
Tags:关于 EditText 一点 深入 了解

一、几个属性的介绍


android:gravity="top" ? ?


这个属性为top可以将光标置于左上角(当EditText设为全屏时)


android:background="@null" ? ?


这个属性为null可以将输入的框线去掉


android:textCursorDrawable="@drawable/ic_launcher"?


这个属性可以设置光标为drawable样式(可以为一张图片)


android:editable="false" 


这个属性为false,则EditText不可编辑。注意是仅仅不能进行输入,但是EditText的滚动什么的还是可以响应的。


?android:enabled="false"


这个属性为false,则EditText也是不可编辑。注意不仅不可编辑,连滚动什么的都不可以响应,所以可以说是直接让EditText不可用。


?android:cursorVisible="false“


这个属性为false,则EditText的光标不可见。


android:focusableInTouchMode="false"


这个属性为false,则EditText不响应触摸模式的焦点,或者说触摸事件不可用。


二、监听EditText的输入


? ? 可以使用TextWatcher来监听EditText的输入。使用方法如下:


三、制作只读的EditText控件


? ? ? 首先说明一下需求:该EditText只会禁止输入,但是可以查看,滚动和触摸什么的都会响应,也就是说仅仅是禁止输入而已!不妨称之为只读模式。


? ? ?怎么制作出一个这样子的EditText呢?网上有很多办法,我几乎都一一试过,但是所使用的方法都无法达到满意。比如:


(1)如果通过设定android:editable属性来使EditText不可输入。这个虽然能完美的达到要求。但是,当EditText又需要恢复可输入状态时,没有相应的动态代码来恢复!


(2)如果使用android:enabled属性,则会使EditText整个不可用,也就是说不仅不可输入,连滚动什么的都不用了。


? ? ?最后,理了理思路,终于解决了这个问题。达到我的预期:即EditText只读模式达到了,在恢复其可编辑状态时也能很容易的恢复。


我的做法如下:


? ?另外需要说明的是,也可以利用下面的方法动态的设定EditText的可输入与不可输入状态。


? ?动态设定EditText不可输入任何字符


这样,利用上面的代码,即使你利用输入键盘输入,也无法输入到EditText中。对应的,相应的恢复输入可采用下面的代码:


//设置输入法可以输入(或者叫恢复输入)
? ? ? ? ? ? et.setFilters(new InputFilter[] { new InputFilter() {
? ? ? ? ? ? ? ?
? ? ? ? ? ? ? ?
public CharSequence filter(CharSequence source, int start,
? ? ? ? ? ? ? ? ? ? ? ?
int end, Spanned dest, int dstart, int dend) {
? ? ? ? ? ? ? ? ? ?
// TODO Auto-generated method stub
? ? ? ? ? ? ? ? ? ? return null;
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? } });


? ? ? 当你的布局中含有一个EditText中的时候,你会发现只要你进入这个活动的界面,输入法键盘就会自动弹出来。在你不打算首先给EditText做输入的时候,


这个自动弹出的输入法则是非常惹人讨厌的!因此可以利用下面的两种办法来禁止因为有了EditText而自动弹出输入法:


? ? ?有两种方式,即在xnl中和利用代码动态设定。如下:


? ?inputType即为输入字符的类型。在这里网上有个很好的总结,如下:


(1)setinputType可以设置EditText(TextView也可以)的输入方式。比如Contact、Email、Date、Time、Short Message、Normal Text、Password 等。


还可以指定各种更正选项,如 单词首字母大写、句子首字母大写、自动更正等。下面的代码是一个使用范例:


(2)setTransformationMethod 则可以支持将输入的字符转换,包括清除换行符、转换为掩码。使用方法:


综合来说,如果需要实现自己的转换,可以通过实现 TransformationMethod 接口来达到你的目的(比如让输入的所有字符都变成 a,或者输入 a 显示 z,输入 z 显示 a 等)。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Android中的事件传递和处理机制 下一篇走进Java NIO的世界

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: