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 ParagraphStyle应用
Android EditText控件
Android 监听软键盘显示和隐藏

本文详细介绍了Android中EditText控件的使用方法,包括常用属性、输入限制、动态设置密码格式等内容,并提供了软键盘右下角按键设置及TextWatcher监听器的具体用法。







1223

被折叠的 条评论
为什么被折叠?



