EditText的方法及使用

EditText 属性

设置控件显示的位置:默认top,这里居中显示,还有bottom
android:layout_gravity="center_vertical"

设置显示在空间上的提示信息
android:hint="请输入数字!"

设置只能输入整数,如果是小数则是:decimal
android:numeric="integer"

设置单行输入,一旦设置为true,则文字不会自动换行(多出的文字会变成......,TextView也一样)
android:singleLine="true"

设置可输入内容最大行数,多出则不显示,与singleLine功能类似,但没有......提示
android:maxLines="数字"

设置只能输入密码
android:password="true"

设置字体颜色
android:textColor = "#ff8c00"

设置字体字形,bold:粗体, italic:斜体, bolditalic:又粗又斜
android:textStyle="bold"

设置字体大小
android:textSize="20dip"

设置英文字母大写类型:sentences:仅第一个字母大写;words每一个单词首字母大小,用空格区分单词;characters每一个英文字母都大写。在模拟器上用PC键盘直接输入可出效果,但用软键盘无效果
android:capitalize = "characters"

EditText没有这个属性,但TextView有
android:textAlign="center"

设置被选中文字的底色,默认为蓝色
android:textColorHighlight="#cccccc"

设置提示信息文字的颜色,默认为灰色
android:textColorHint="#ffff00"

控制字与字之间的间距
android:textScaleX="1.5"

设置文字字体,可设置的字体选择有:normal, sans, serif, monospace
android:typeface="monospace"

空间背景,这里设置为null,指透明
android:background="@null"

权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的
android:layout_weight="1"


通过EditText的layout xml文件中的相关属性来实现:

1. 密码框属性 android:password="true" 这条可以让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。
2. 纯数字 android:numeric="true" 这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入
3. 仅允许 android:capitalize="cwj1987" 这样仅允许接受输入cwj1987,一般用于密码验证
4. 设置软键盘不自动打开,需要在EdItText的父布局中添加以下属性:
  android :focusable="true"  
 android:focusableInTouchMode="true"

下面是一些扩展的风格属性
android:editable="false" 设置EditText不可编辑
android:singleLine="true" 强制输入的内容在单行
android:ellipsize="end" 自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时

EditText光标位置(定位到文字的最后)

方法:edittext.setSelection(int);
et.setText(content);//设置EditText控件的内容
et.setSelection(content.length());//将光标移至文字末尾


在项目中,一进入一个页面, EditText默认就会自动获取焦点。(进入页面后自动打开软键盘)
那么如何取消这个默认行为呢?

解决之道:在EditText的父级控件中找一个,设置成 (注意,是EditText的父级控件,而不是在EditText中设置)
     android :focusable="true"  
   android:focusableInTouchMode="true"
这样,就把EditText默认的行为截断了!

 

EditText中禁止输入中文的方法

应用场景
Android 应用中有时需要EditText中只允许输入约定的一些字符,禁止输入其他字符。这里列举了一些可能的应用场景。 
1. 场景一 
在通讯录保存好友信息界面中填写好友的电话号码时,应当只能输入数字,禁止输入其他字符。 
2. 场景二 
在登录界面中输入用户名和密码时,由于很多账号系统都不支持中文的用户名和密码,只允许使用英文字母和数字。如果可以禁止在输入框中输入中文可以减少不必要的登录验证过程,也方便了用户操作。 
3. 场景三 
在邮箱地址的输入框中,应当只允许输入英文字母,数字和@.两个符号。

android:digits属性
EditText提供了一个android:digits配置,它表示EditText能够接受的字符集合。通过配置此属性,就可以实现只允许输入指定的字符。这里列举上述三种场景下的android:digits配置。 
1. 场景一:只允许输入数字 
android:digits="0123456789" 
2. 场景二:只允许输入数字和英文字母 
android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" 
3. 场景三:只允许输入数字,英文字母和@.两个符号 
android:digits="0123456789abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ@."
使用android:digits属性有几个需要注意的地方。 
1. android:digits属性是隐藏的,无法直接在EditText的可视化属性列表中找到。只能直接在XML中配置。当在XML中增加了这项配置后,才可以在EditText的可视化属性列表中找到。 
2. android:digits属性中的字符顺序没有影响,例如只允许输入数字时,可以用android:digits="0123456789",也可以用android:digits="9876543210"。 
3. android:digits属性中允许有重复字符,有重复字符在使用效果上没有影响。例如android:digits="aaaAAA"和android:digits="aA"效果是一样的。 
4. android:digits属性只能设置允许输入哪些字符,不能设置禁止输入哪些字符,也就是说android:digits属性只能设置白名单,不能设置黑名单。

inputType属性

带有中文输入法的手机,通常输入法会有三种类型的软键盘:中文键盘,英文键盘和数字键盘,不同键盘类型之间可以切换。虽然android:digits属性可以让EditText中只允许输入指定类型的字符,但并不能控制软键盘弹出时的类型。例如在设置android:digits只允许输入数字时,可能弹出的软键盘是英文键盘或中文键盘,需要用户点击切换到数字键盘后才可以输入;在设置android:digits只允许输入英文和数字时,可能弹出的软键盘是中文键盘,同样需要用户点击切换到英文键盘和数字键盘后才可以输入。如果能在软键盘显示时就直接跳到对应键盘类型,不需要用户切换就更好了。 
EditText提供了一个android:inputType属性来设置输入框的类型。android:inputType可以使用的选项非常多,这里只列出和软键盘显示相关的几个选项。

inputType属性值 含义
number 用来输入数字
textCapCharacters 输入的全部字母大写
textCapWords 输入的每个单词首字母大写
textCapSentences 输入的每个句子首字母大写
textPassword 用来输入密码,所有输入的字符都会变成星号*
textVisiblePassword 用来输入密码,输入的字符原样显示
textEmailAddress 用来输入Email地址


当设置android:inputType为number时,输入法开启时会自动切换到数字键盘。当设置为这里的其他几个选项时,输入法开启时会自动切换到英文字母键盘。这里列举上述三种场景下的android:inputType配置。 
1. 场景一:只允许输入数字 
android:inputType="number"。实际上,当inputType设置为number后,EditText中就只能输入数字了,那么android:digits="0123456789"也不用设置了。 
如果android:inputType="number"和android:digits同时设置,则实际可以输入的字符以android:digits配置为准。例如android:digits="01234567+-",则可以输入的字符为"01234567+-",这时如果同时设置了android:inputType="number",可以达到自动切换到数字键盘的目的。 
2. 场景二:只允许输入数字和英文字母 
android:inputType="textVisiblePassword"。其他几个选项似乎都不太合适,textCapxxx的会有大小写的约束,textPassword显然只能用在密码输入框中,如果不介意软键盘中多几个符号,textEmailAddress倒也可以用在这里。 
3. 场景三:只允许输入数字,英文字母和@.两个符号 
android:inputType="textEmailAddress"。 
最后再吐槽下android在android:inputType参数上的设计,android并没有将各个android:inputType参数对应的功能全部实现在android框架中,部分参数的功能完全交给输入法去实现,还有一部分参数的功能一半在android内部实现,一半交给输入法实现。由于android输入法的开放性,android本身对输入法开发商又没有任何约束,这导致了各个android:inputType参数在不同输入法上的表现千差万别。例如textCap…这几个参数,android原本希望用它来控制输入字母的大小写,但大多数输入法都没有完全实现这几个选项中对大小写的设定,有些只实现了textCapCharacters,有些只是将软键盘调整为英文键盘,有些则干脆什么也不做。textEmailAddress有些输入法会在软键盘上方额外增加几个邮箱中常用的符号,有些则只是显示英文键盘。


  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: EditText是Android中的一个UI组件,用于接收和显示用户输入的文本信息。它提供了一系列方法用于操作和获取EditText的属性,其中一些常用的方法如下: 1. setText(CharSequence text):设置EditText中显示的文本内容。 2. getText():获取EditText中的文本内容。 3. setHint(CharSequence hint):设置EditText中未输入内容时的提示信息。 4. setSelection(int index):设置EditText中光标所在的位置。 5. addTextChangedListener(TextWatcher watcher):为EditText添加文本变化的监听器。 6. setOnEditorActionListener(TextView.OnEditorActionListener listener):为EditText设置编辑器操作的监听器。 7. setEnabled(boolean enabled):设置EditText是否可用。 以上仅是一部分常用的方法EditText还有很多其他的方法可以使用。 ### 回答2: EditText是Android开发中常用的一个控件,主要用于接收用户的输入。 1. getText():获取EditText中的文本内容 方法说明:返回一个Editable类型的对象,表示EditText中的文本内容 2. setText():设置EditText的文本内容 方法说明:接收一个CharSequence类型的参数,并将其作为EditText的文本内容进行显示 3. setSelection():设置EditText中文本的选中区域 方法说明:接收两个参数,分别表示选中文本的起始位置和结束位置,将这段文本在EditText中变为选中状态 4. append():在EditText的内容后追加文本 方法说明:接收一个CharSequence类型的参数,并将其追加到EditText原有的文本内容后面 5. addTextChangedListener():为EditText添加文本变化监听器 方法说明:接收一个TextWatcher类型的参数,用于监听EditText中文本内容的变化 6. setHint():设置EditText的提示文本 方法说明:接收一个CharSequence类型的参数,用于设置EditText的提示文本,在用户输入之前显示在控件上 7. setInputType():设置EditText的输入类型 方法说明:接收一个InputType类型的参数,用于设置EditText接收用户输入的类型,如数字、电话、邮箱等 8. requestFocus():获取EditText焦点 方法说明:设置EditText为焦点状态,允许用户输入的控件会自动获取焦点 9. setEnabled():设置EditText是否可编辑 方法说明:接收一个boolean类型的参数,用于设置EditText是否可以编辑。当设置为false时,EditText将无法接收用户的输入。 以上是EditText的一些常用方法和简单的中文说明,通过这些方法,可以实现对EditText的各种操作和设置。 ### 回答3: EditText是Android开发中常用的一个控件,用于接收和显示用户输入的文本。下面是EditText的常用方法及其中文说明: 1. setText(CharSequence text):设置EditText显示的文本内容。 2. getText():获取EditText当前显示的文本内容。 3. setHint(CharSequence hint):设置EditText的提示文本,当EditText没有输入时显示。 4. setEnabled(boolean enabled):设置EditText是否可用。 5. setFocusable(boolean focusable):设置EditText是否可以获得焦点。 6. setFocusableInTouchMode(boolean focusableInTouchMode):设置EditText是否可以在触摸模式下获得焦点。 7. addTextChangedListener(TextWatcher watcher):添加文本监听器,用于监听EditText中文本的变化。 8. setSelection(int index):设置EditText中文本的选中范围。 9. setCursorVisible(boolean visible):设置是否显示光标。 10. setInputType(int type):设置EditText的输入类型,例如数字、电话号码、密码等。 11. setTransformationMethod(TransformationMethod method):设置EditText中文本的转换方式,例如隐藏密码。 12. setOnEditorActionListener(TextView.OnEditorActionListener listener):设置监听EditText中软键盘的动作事件。 13. setFilters(InputFilter[] filters):设置输入过滤器,限制输入字符的类型和长度。 14. setError(CharSequence error):设置错误提示信息,当用户输入不符合要求时显示错误提示。 15. setOnFocusChangeListener(View.OnFocusChangeListener listener):设置焦点改变监听器,用于监听EditText的焦点变化。 16. requestFocus():请求EditText获取焦点。 这些方法可以帮助我们控制和自定义EditText的行为和外观,使其能够更好地满足我们的需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值