Android开发之文本输入
1. 概述
Android开发学习笔记。学习编辑框EditText的使用,包括:改变编辑框的外观、编辑框的焦点变更监听器、文本变化监听器。
2. 编辑框 EditText
编辑框接收软键盘输入的文字,由文本视图TextView派生而来,除了TextView已有的各种属性和方法,EditText还支持下列xml属性:
- inputType:指定输入的文本类型(文本、整型数、文本密码等),若同时使用多种文本类型,用竖线拼接多种类型;
- maxLength:指定文本允许输入的最大长度;
- hint:指定提示文字的内容;
- textColorHint:指定提示文字的颜色。
默认编辑框的下划线用了已有的背景属性background;未输入与正在输入两种情况的颜色差异,是因为使用了状态列表图形,编辑框获得焦点时显示红色的下划线,其余时候显示灰色下划线。
利用状态列表图形将编辑框背景改为更加每个的圆角矩形,从而改变编辑框的外观。
3. 焦点变更监听器
编辑框比较特殊,要点击两次后才会触发点击事件,因为第一次点击只触发焦点变更事件,第二次才触发点击事件。对于编辑框来说,应当注册焦点变更监听器,而非注册点击监听器。
焦点变更监听器来自接口View.OnFocusChangeListener,需要重写onFocusChange方法。
EditText et_password = findViewById(R.id.et_password);
et_password.setOnFocusChangeListener(this);
4. 文本变化监听器
文本监听器接口TextWatcher,提供了3个监控方法:
- beforeTextChanged,在文本改变之前触发;
- onTextChanged,在文本改变过程中触发;
- afterTextChanged,在文本改变之后触发。
自定义监听器实现接口TextWatcher,重写上述3个方法,监听操作逻辑可根据需要,在其中之一方法中实现。
注册文本变化监听器,调用编辑框对象的addTextChangedListener方法完成。