Android(安卓)EditText控件
16lz
2021-12-04
1. 常用属性
EditText
控件用于获取用户的输入。EditText
类继承TextView
类,能使用TextView
的所有常用属性。可参考Android TextView控件。
android:hint
设置EditText
内容为空时显示的文本android:textColorHint
设置hint
的字体颜色android:editable
设置是否可编辑android:password
设置是否是密码框,显示内容自动为星号
2. 输入限制
android:inputType
属性,设置虚拟键盘
值 | 说明 |
---|---|
none | 输入普通字符 |
text | 输入普通字符 |
textCapCharacters | 输入普通字符 |
textCapWords | 单词首字母大小 |
textCapSentences | 仅第一个字母大小 |
textAutoCorrect | 前两个自动完成 |
textAutoComplete | 前两个自动完成 |
textMultiLine | 多行输入 |
textImeMultiLine | 输入法多行(不一定支持) |
textNoSuggestions | 不提示 |
textUri | URI格式 |
textEmailAddress | 电子邮件地址格式 |
textEmailSubject | 邮件主题格式 |
textShortMessage | 短消息格式 |
textLongMessage | 长消息格式 |
textPersonName | 人名格式 |
textPostalAddress | 邮政格式 |
textPassword | 密码格式 |
textVisiblePassword | 密码可见格式 |
textWebEditText | 作为网页表单的文本格式 |
textFilter | 文本筛选格式 |
textPhonetic | 拼音输入格式 |
number | 数字格式 |
numberSigned | 有符号数字格式 |
numberDecimal | 可以带小数点的浮点格式 |
phone | 拨号键盘 |
datetime | 时间日期 |
date | 日期键盘 |
time | 时间键盘 |
android:digits
属性,指定要支持的字符
android:digits=“0123456789abcdefghijklmnopqrstuvwxyz”
android:numeric
属性,只支持数字
值 | 说明 |
---|---|
integer | 只能输入整数 |
decimal | 可以输入小数 |
signed | 有符号数字格式 |
3. 动态设置密码格式
-
setInputType(int)
方法。if (show) { EditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD); } else { EditText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD); }
-
setTransformationMethod(TransformationMethod)
方法。if (show) { EditText.setTransformationMethod( HideReturnsTransformationMethod.getInstance()); } else { EditText.setTransformationMethod( PasswordTransformationMethod.getInstance()); }
4. 软键盘右下角按键
android:imeOptions
设置软键盘右下键按键。
值 | 说明 | 图标 |
---|---|---|
actionUnspecified | 对应常量EditorInfo.IME_ACTION_UNSPECIFIED | |
actionNone | 对应常量EditorInfo.IME_ACTION_NONE | |
actionGo | 对应常量EditorInfo.IME_ACTION_GO | |
actionSearch | 对应常量EditorInfo.IME_ACTION_SEARCH | |
actionSend | 对应常量EditorInfo.IME_ACTION_SEND | |
actionNext | 对应常量EditorInfo.IME_ACTION_NEXT | |
actionDone | 对应常量EditorInfo.IME_ACTION_DONE |
设置下面两个属性中的一个即可使这个属性生效
- 将
singleLine
设置为true
- 将
inputType
设置为text
监听软件盘按钮,返回true
来屏蔽系统默认操作。
EditText.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_NEXT) { return true; } return false; }});
5. 设置光标位置
EditText
的setSelection()
方法实际上是调用Selection.setSelection()
的方法实现的。
setSelection(int index)
将光标移至index
处。setSelection(int start, int stop)
选择从start
到stop
处的文本。
6. TextWatcher监听器
EditText
调用addTextChangedListener(TextWatcher watcher)
来添加监听器。
public interface TextWatcher extends NoCopySpan { public void beforeTextChanged(CharSequence s, int start, int count, int after); public void onTextChanged(CharSequence s, int start, int before, int count); public void afterTextChanged(Editable s);}
在onTextChanged()
方法中有4个参数。
s
表示当前输入框中字符。start
表示光标的位置。- 如果
count
等于0,start
是光标结束的位置。 - 如果
count
大于0,start
是光标开始的位置。
- 如果
before
表示原有字符被删除的数量。count
表示输入字符的长度。添加时为1,删除时为0。
具体如下
- 添加一个字符,
start
为输入光标处,count
为1,before
为0。拷贝一个字符串,count
为字符串长度。 - 删除一个字符,
start
为结束光标处,count
为0,before
为1。剪切一个字符串,before
为字符串长度。 - 拷贝一个长度为3的字符串,粘贴覆盖2个字符串,
start
为输入光标处,count
为3,before
为2。
相关文章
Android TextView控件
Android Span应用
Android EditText控件
Android 监听软键盘显示和隐藏
更多相关文章
- android里面EditTex多行输入及输入置顶问题
- Android空间EditText的InputType属性
- Android(安卓)中文API合集(3)(83篇)(chm格式)
- Android空间EditText的InputType属性
- 如何在Android上安装apk软件
- Edittext设置输入属性,包括使用代码设置
- Android根据输入银行卡号判断属于哪个银行
- Android控件之EditText(输入文本框控件)
- Edittext 设置