一. 继承图

二. Xml方式

继承自 TextView 的方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
android:text            //设置文本内容
android:textColor //设置字体颜色
android:textSize //设置字体大小
android:textStyle //设置字形,可以设置一个或多个,用"|"隔开,bold:粗体,italic:斜体,bold | italic:又粗又斜
android:textAllCape //true:全部大写 flase:遵循输入的大小写

android:background //设置输入框背景,@null是去掉原生的背景

android:drawableLeft //在text的左边输出一个drawable,如图片
android:drawablePadding //设置text与drawable(图片)的间隔

android:hint //设置提示的文本内容
android:textColorHint //设置提示文本的颜色

android:inputType //限制输入类型
//number:整数类型
//numberDecimal:小数点类型
//date:日期类型
//text:文本类型(默认值)
//phone:拨号键盘
//textPassword:密码
//textVisiblePassword:可见密码
//textUri:网址

android:ellipsize //设置当文字过长时,该控件该如何显示。
//start:省略号显示在开头
//end:省略号显示在结尾
//middle:省略号显示在中间
//marquee:以跑马灯的方式显示(动画横向移动)

android:maxLength //限制显示的文本长度,超出部分不显示

android:minLines //设置文本的最小行数
android:maxLines //设置文本的最大行数

android:lines //设置文本的行数,设置两行就显示两行,即使第二行没有数据。
//singleLine设置单行的方式废弃了
//单独设置android:lines="1",无效
//由于android:inputType属性默认值为none的缘故
//只要将android:inputType属性设置为其他就可以了

android:lineSpacingExtra//设置行间距

android:autoLink //为文本设置链接

android:textIsSelectable//文本是否可以复制

android:shadowRadius //设置阴影的半径
android:shadowColor //指定文本阴影的颜色
android:shadowDx //设置阴影横向坐标开始位置
android:shadowDy //设置阴影纵向坐标开始位置

android:clickable //视图是否可以点击
android:focusable //视图是否获得焦点
android:enabled //视图是否可编辑

android:cursorVisible //设定光标为显示/隐藏,默认显示
android:textCursorDrawable//设置光标的样式 "@null"作用是让光标颜色和text color一样

android:onClick //设置点击事件

三. 监听事件

1. TextWatcher—监听文本内容的改变

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
EditText editText = findViewById(R.id.edit);

//执行顺序是:
//beforeTextChanged()
//onTextChanged()
//afterTextChanged()
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
//这个方法用来通知你,在字符串s里,光标start开始处的count个字符将要被after长的字符代替。
//禁止在这个回调里改字符串s。可以理解成提醒你你做了什么操作。
}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
//这个方法是用来告诉你,在字符串s里,光标start开始处的count个字符刚刚把原来的before长度的字符替换。
//理解为通知你刚刚做,或正在做,主要与后边afterTextChanged()方法区分
}

@Override
public void afterTextChanged(Editable s) {
//这个方法告诉你,在字符串s内的某处,一些地方已经改变了
}
});

2. OnKeyListener—监听软键盘的点击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
EditText editText = findViewById(R.id.edit);

editText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View v, int keyCode, KeyEvent event) {
//触摸事件为了该方法只调用一次
if(event.getAction()==KeyEvent.ACTION_UP) {

//判断点击的键是否是Return键
if(keyCode == KeyEvent.KEYCODE_ENTER){
//具体的操作
}

}

return false;
}
});

四. 常见设置

1. 修改密码框默认的小圆点样式

Android EditText 密码框默认是小圆点 怎么改成其它的(*)?

2. 修改光标的样式

修改Android EditText光标颜色和底线颜色

3. 关闭软键盘

1
2
3
4
5
6
7
8
9
10
11
12
13
//判断当前是否有视图获得焦点
if (getCurrentFocus() != null){
//1.获取系统输入的管理器
InputMethodManager inputMethodManager = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE);

//2.隐藏键盘
if (inputMethodManager != null) {
inputMethodManager.hideSoftInputFromWindow(getCurrentFocus().getWindowToken(),0);
}

//3.取消焦点
getCurrentFocus().clearFocus();
}

参考文章

Android EditText设置为单行

Android学习笔记34——EditText输入框详解

详解EditText输入监听TextWatcher

你从未见过的EditText属性详解