对于EditText的详细用法
EditText这个控件对于每一个Android开发者来说都是再熟悉不过了,但是,为什么有的人的EditText可以表现的那么好看,而刚入学Android的程序员来讲却丑到爆。这就充分的说明对于EditText的人是不够。今天本人就来对EditText的一些比较实用的特性做一些讲解。
普通的EditText:
对于一些普通的属性我就不在多说,我们来看一些比较被人们忽略却及其有用的属性:
- android:gravity="top" 这个属性为top可以将光标置于左上角(当EditText设为全屏时)
- android:background="@null" 这个属性为null可以将输入的框线去掉
- android:textCursorDrawable="@drawable/ic_launcher" 这个属性可以设置光标注意是仅仅不能进行输入,但是EditText的滚动什么的还是可以响应的。为drawable样式(可以为一张图片)
- android:editable="false" 这个属性为false,则EditText不可编辑。
- android:enabled="false" 这个属性为false,则EditText也是不可编辑。注意不仅不可编辑,连滚动什么的都不可以响应,所以可以说是直接让EditText不可用。
- android:cursorVisible="false“ 这个属性为false,则EditText的光标不可见。
- android:focusableInTouchMode="false" 这个属性为false,则EditText不响应触摸模式的焦点,或者说触摸事件不可用。
` 当然还有很多人会说,就光靠这些别人的效果还是做不出来呀。当然,这只是一部分,剩下的我们到java代码里面慢慢写:
首先就是个各种点击变色啊什么的效果:
在你的Activity/Fragment等等总之用到EditText的java文件里面设置:
Et.addTextChangedListener(new TextWatcher() { //S:变化后的所有字符;start:字符起始的位置;before: 变化之前的总字节数;count:变化后的字节数 public void onTextChanged(CharSequence s, int start, int before, int count) { } //s:变化前的所有字符; start:字符开始的位置; count:变化前的总字节数;after:变化后的字节数 public void beforeTextChanged(CharSequence s, int start, int count, int after) { } //s:变化后的所有字符 public void afterTextChanged(Editable s) { } });
是不是突然感觉EditText突然就活起来了呢,代码就不作解释了,光看方法的名字就就懂意思了~~~~
最后再附上一些对于输入内容的一些要求,相信大家在用到EditText的时候经常会用到:
android:inputType参数类型说明
android:inputType="none"--输入普通字符
android:inputType="text"--输入普通字符
android:inputType="textCapCharacters"--输入普通字符
android:inputType="textCapWords"--单词首字母大小
android:inputType="textCapSentences"--仅第一个字母大小
android:inputType="textAutoCorrect"--前两个自动完成
android:inputType="textAutoComplete"--前两个自动完成
android:inputType="textMultiLine"--多行输入
android:inputType="textImeMultiLine"--输入法多行(不一定支持)
android:inputType="textNoSuggestions"--不提示
android:inputType="textUri"--URI格式
android:inputType="textEmailAddress"--电子邮件地址格式
android:inputType="textEmailSubject"--邮件主题格式
android:inputType="textShortMessage"--短消息格式
android:inputType="textLongMessage"--长消息格式
android:inputType="textPersonName"--人名格式
android:inputType="textPostalAddress"--邮政格式
android:inputType="textPassword"--密码格式
android:inputType="textVisiblePassword"--密码可见格式
android:inputType="textWebEditText"--作为网页表单的文本格式
android:inputType="textFilter"--文本筛选格式
android:inputType="textPhonetic"--拼音输入格式
android:inputType="number"--数字格式
android:inputType="numberSigned"--有符号数字格式
android:inputType="numberDecimal"--可以带小数点的浮点格式
android:inputType="phone"--拨号键盘
android:inputType="datetime"
android:inputType="date"--日期键盘
android:inputType="time"--时间键盘
Material Design 化的EditText:
直接看图片,是不是感觉立刻B格体现了出来:
Android在新版的SDK中加入了AppCompateEditText,这个空间对于很多人来说较为陌生:
给个例子吧:
<android.support.v7.widget.AppCompatEditText android:id="@+id/edt" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_marginLeft="16dp" android:layout_marginRight="24dp" android:hint="写点什么:" android:inputType="text" android:textColor="@color/ed_text_color" android:textColorHint="@color/dialog_nav" android:textSize="14sp" app:theme="@style/EditTheme" />
==================================================================================================================================
<style name="EditTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorAccent">@color/main</item>
<item name="colorControlNormal">@color/white</item>
</style>
不难会发现大部分的内容还是与我们最开始的方式没有什么不同,如果想要hint在输入的时候移动要上方,只需要加在EditText外层加一个android.support.design.widget.TextInputLayout 就可以。
最后谈到了EditText,当然是不能少了MaterialEditText的,由于作者已经介绍的很详细了,这里我就不再多说。
附上地址
- github地址:https://github.com/rengwuxian/MaterialEditText
- 中文解释网址:http://www.rengwuxian.com/post/materialedittext
版权声明:本文为博主原创文章,转载请注明来源谢谢。