EditText这个控件对于每一个Android开发者来说都是再熟悉不过了,但是,为什么有的人的EditText可以表现的那么好看,而刚入学Android的程序员来讲却丑到爆。这就充分的说明对于EditText的人是不够。今天本人就来对EditText的一些比较实用的特性做一些讲解。

  普通的EditText:

  对于一些普通的属性我就不在多说,我们来看一些比较被人们忽略却及其有用的属性:

  1. android:gravity="top"     这个属性为top可以将光标置于左上角(当EditText设为全屏时)
  2. android:background="@null"     这个属性为null可以将输入的框线去掉
  3. android:textCursorDrawable="@drawable/ic_launcher"   这个属性可以设置光标注意是仅仅不能进行输入,但是EditText的滚动什么的还是可以响应的。为drawable样式(可以为一张图片)
  4. android:editable="false" 这个属性为false,则EditText不可编辑。
  5. android:enabled="false"  这个属性为false,则EditText也是不可编辑。注意不仅不可编辑,连滚动什么的都不可以响应,所以可以说是直接让EditText不可用。
  6. android:cursorVisible="false“  这个属性为false,则EditText的光标不可见。
  7. 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的,由于作者已经介绍的很详细了,这里我就不再多说。

  附上地址

  版权声明:本文为博主原创文章,转载请注明来源谢谢。

对于EditText的详细用法的更多相关文章

  1. C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法

    C#播放声音的四种方法 第一种是利用DirectX 1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll和 Microsoft.Directx ...

  2. 在DOS下的DEBUG命令的详细用法

    在DOS下的DEBUG命令的详细用法 名称 解释 格式 a (Assemble) 逐行汇编 a [address] c (Compare) 比较两内存块 c range address d (Dump ...

  3. __declspec关键字详细用法

    __declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI ...

  4. CString.Format的详细用法(转)

    CString.Format的详细用法(转) 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CS ...

  5. IFRAM的详细用法

    IFRAM的详细用法:   IFRAM的详细用法:  <IFRAME>用于设置文本或图形的浮动图文框或容器. BORDER <IFRAME BORDER="3"& ...

  6. 【转】java.util.vector中的vector的详细用法

    [转]java.util.vector中的vector的详细用法 ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 import java.uti ...

  7. DOM Style样式对象的详细用法

    DOM Style样式对象的详细用法 HTML Style样式比较复杂,相应访问.修改方法也有所差异.参考相关资料,整理如下. 典型Html文件如下,有三种定义方式. <head>     ...

  8. css基础之 font的简写规则 以及 自定义 CSS3 @font-face详细用法

    Part 1 font简写 CSS的命名规则是用英文字母 数字 和下划线(一般用小写)来命名.简写css font的好处有三:一是写起来方便(就像键盘快捷键):二是简化代码:三是帮助你熟悉和深刻理解c ...

  9. Tomcat详细用法学习(三)

    本篇接上一篇<Tomcat详细用法学习(二)>,主要讲解服务器所要求的web应用的组织结构. 上一篇说到了如何使用服务器将自己的web应用映射成虚拟目录,以便于在浏览器中可以对自己开发的w ...

随机推荐

  1. Apache Log4j使用实例

    Apache Log4j使用实例  原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.  Blog:  1.Logger类 通过Logger类的静 ...

  2. oracle 10g WMSYS.WM_CONCAT 函數的用法

    select t.rank, t.Name from t_menu_item t; 10 CLARK 10 KING 10 MILLER 20 ADAMS 20 FORD 20 JONES 20 SC ...

  3. 只要把鼠标移上Div方框,方框就自动顺时针旋转

    这是一个CSS3特效,IE下看不到效果.一个Div方框,在CSS3代码的作用下,只要把鼠标移上Div方框,方框就自动顺时针旋转.代码量不大,甚至有些简单,作为一个基础的CSS3实例,我想还是比较不错的 ...

  4. 【转】QTP书写程序技巧

    一.添加固定注释 新建一TXT文档,将要添加的注释写在文档中 将文档名改为:ActionTemplate.mst 将文件放到QTP安装目录的dat文件夹中 设置好后,在QTP中每次新建一个测试就会自动 ...

  5. Ubuntu配置Android编译环境

    1.Ubuntu安装 VMware安装ubuntu之后,安装Vmware tools: 1.安装完ubuntu后,VMware Workstation菜单:虚拟机-->安装 Vmware Too ...

  6. [LeetCode] 3Sum 解题思路

    Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all un ...

  7. 多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客

    多IDC数据分布--MySQL多机房部署 - 学习笔记 - 51CTO技术博客 多IDC数据分布--MySQL多机房部署

  8. PC-[WIN7]此计算机无法联接家庭组

    不能启用 HomeGroup Listener 解决: 1.设定为自动开始:Function Discovery Provider HostFunction Discovery Resource Pu ...

  9. ASP.NET- 播放视频代码

    在网上找的,还不错,支持很多格式.只需要在页面放个lable,建一个放视频文件的文件夹movie,加入代码: protected void Page_Load(object sender, Event ...

  10. Winform DataTable 客户端操作数据

    //创建 DataTable DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add(" ...