对于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
版权声明:本文为博主原创文章,转载请注明来源谢谢。
对于EditText的详细用法的更多相关文章
- C#播放声音的四种方法 +AxWindowsMediaPlayer的详细用法
C#播放声音的四种方法 第一种是利用DirectX 1.安装了DirectX SDK(有9个DLL文件).这里我们只用到MicroSoft.DirectX.dll和 Microsoft.Directx ...
- 在DOS下的DEBUG命令的详细用法
在DOS下的DEBUG命令的详细用法 名称 解释 格式 a (Assemble) 逐行汇编 a [address] c (Compare) 比较两内存块 c range address d (Dump ...
- __declspec关键字详细用法
__declspec关键字详细用法 __declspec用于指定所给定类型的实例的与Microsoft相关的存储方式.其它的有关存储方式的修饰符如static与extern等是C和C++语言的ANSI ...
- CString.Format的详细用法(转)
CString.Format的详细用法(转) 在MFC程序中,使用CString来处理字符串是一个很不错的选择.CString既可以处理Unicode标准的字符串,也可以处理ANSI标准的字符串.CS ...
- IFRAM的详细用法
IFRAM的详细用法: IFRAM的详细用法: <IFRAME>用于设置文本或图形的浮动图文框或容器. BORDER <IFRAME BORDER="3"& ...
- 【转】java.util.vector中的vector的详细用法
[转]java.util.vector中的vector的详细用法 ArrayList会比Vector快,他是非同步的,如果设计涉及到多线程,还是用Vector比较好一些 import java.uti ...
- DOM Style样式对象的详细用法
DOM Style样式对象的详细用法 HTML Style样式比较复杂,相应访问.修改方法也有所差异.参考相关资料,整理如下. 典型Html文件如下,有三种定义方式. <head> ...
- css基础之 font的简写规则 以及 自定义 CSS3 @font-face详细用法
Part 1 font简写 CSS的命名规则是用英文字母 数字 和下划线(一般用小写)来命名.简写css font的好处有三:一是写起来方便(就像键盘快捷键):二是简化代码:三是帮助你熟悉和深刻理解c ...
- Tomcat详细用法学习(三)
本篇接上一篇<Tomcat详细用法学习(二)>,主要讲解服务器所要求的web应用的组织结构. 上一篇说到了如何使用服务器将自己的web应用映射成虚拟目录,以便于在浏览器中可以对自己开发的w ...
随机推荐
- Json遇到引号需要转义的问题
首先看一个简单的Json格式的数据: {data:{id:1,text:"this is text",src:"abc/abc/abc.png"},succes ...
- Muduo-Base-TimeStamp类
Muduo的时间戳类. 主要功能: 能够获取当前的时间 能够将当前的时间以string的形式返回 能够获取两个时间戳类的时间差 能够获取当前精确的时间(微秒级) #ifndef TIMESTAMP_H ...
- 【转】SourceTree的简单使用
原文网址:http://blog.csdn.net/u011439289/article/details/42126507 今天开始参与公司项目的代码编写,公司内部采用的是gitlib,所以用到了So ...
- 牛刀小试、用SharePoint 实现请假管理功能
转:http://www.cr173.com/html/15518_1.html "请假管理"应用,应该算是 SharePoint 的"Hello World!" ...
- linux .o,.a,.so文件解析
linux下文件的类型是不依赖于其后缀名的,但一般来讲:.o,是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a为静态库 ...
- Web---Cookie技术(显示用户上次登录的时间、显示用户最近浏览的若干个图片(按比例缩放))
本章博客讲解: 1.Cookie基本用法演示 2.演示Cookie的访问权限 3.演示Cookie的删除 4.利用Cookie显示用户上次登录的时间 5.利用Cookie技术显示用户最近浏览的若干个图 ...
- EF中使用存储过程
1.存储过程使用out参数返回结果 存储过程: create or replace procedure PROC_GETSEQ(tbname varchar,ReturnNum out number) ...
- SQL语句的增删改查
一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...
- cf754D
题意:给你一个数m,有多少优惠券,给个n,主角想用多少优惠券.然后接下来时m行,每行两个数,那张优惠券的优惠区间a,b(在a号货物到b号货物之间的所有都可以优惠) 问你,能不能用k张优惠券,是他的优惠 ...
- window系统上用PHP获取本地物理IP代码
<?php $res=system("ipconfig -all"); $contents=trim(ob_get_clean()); $contents=str_repla ...