EditText
是 TextView
的子类,用于进行文字输入等操作,是开发中特别常用的一个控件了,本文主要介绍:
- 更改EditText的背景
- 设置监听事件
- 给EditText设置具有带图片的Hint
监听事件
监听焦点变化
1 | etInput.setOnFocusChangeListener(new OnFocusChangeListener() { |
文本输入监听事件
1 | etInput.addTextChangedListener(new TextWatcher() { |
自定义EditText背景
如下图所示,当离开当前EditText时,检查输入是否有问题,输入错误会显示红色
定义背景drawable文件
其他形态的背景也相对简单,只有一条线的这种背景drawable写起来还是需要研究一下的,直接上代码啦,主要是用了一个selector -> layer-list -> shape
,在select
属性改变时,改变线条的颜色。原本是一个矩形,然后将另外三个边偏移一下,只留下底边,达到线条显示的效果。
1 | <?xml version="1.0" encoding="utf-8"?> |
带图片的Hint
如下图所示,实现带有图片的hint,使用 SpannableString
实现 ,但是开始的效果不是很理想,图片不能很好的居中,使用重写ImageSpan
的方法解决了这个问题
图片垂直居中的span
1 | class VerticalCenterImageSpan extends ImageSpan { |
设置hint
1 | // 设置图文hint |
修改键盘的回车键
在xml配置
1 | android:imeOptions="actionSearch" |
或在java代码中配置
1 | editText.setImeOptions(EditorInfo.IME_ACTION_SEARCH); |
实现监听,进行相关操作
1 | editText.setOnEditorActionListener(new TextView.OnEditorActionListener() { |