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. 设置光标位置

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

更多相关文章

  1. android里面EditTex多行输入及输入置顶问题
  2. Android空间EditText的InputType属性
  3. Android(安卓)中文API合集(3)(83篇)(chm格式)
  4. Android空间EditText的InputType属性
  5. 如何在Android上安装apk软件
  6. Edittext设置输入属性,包括使用代码设置
  7. Android根据输入银行卡号判断属于哪个银行
  8. Android控件之EditText(输入文本框控件)
  9. Edittext 设置

随机推荐

  1. ArcGIS Runtime for Android 使用异步GP
  2. Android横竖屏切换的解决方法
  3. Andrioid SystemProperties和Settings.Sy
  4. 【Android】Replace "..." with ellipsis
  5. android引入JAR包,打包成JAR包,打包成Libra
  6. android屏幕旋转时,Activity不重新调用onC
  7. android解析xml文档的各种方法
  8. 国内更新Android SDK 使用Android SDK Ma
  9. 我的Android进阶之旅------>Android拍照
  10. Button 按钮的几个属性