Android EditText控件

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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不提示
textUriURI格式
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. 设置光标位置

EditTextsetSelection()方法实际上是调用Selection.setSelection()的方法实现的。

  • setSelection(int index)将光标移至index处。
  • setSelection(int start, int stop) 选择从startstop处的文本。

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 监听软键盘显示和隐藏

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值