EditText
1.监听器
addTextChangedListener :文本变化观察者 setOnEditorActionListener: 键盘回车事件
2.常用属性
android:password=”true” 这条可以让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。android:numeric=”true” 这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入android:capitalize=”abcde” 这样仅允许接受输入abcde,一般用于密码验证android:hint=”密码” 设置显示的提示信息android:maxLine=”2” 设置最多多少行android:inputType=”number” 输入类型android:imeOptions=”actionDone” 键盘回车的类型
下面列出比较经常用到的几个属性以及替换的文本外观:
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
3.输入完成,关闭输入法
有时候输入完成,需要关闭输入法,不然用户体验效果不好
etQueryPhone.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//关闭输入法
InputMethodManager inputMethodManager = (InputMethodManager)
QueryAddressActivity.this.getSystemService
(Context.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(etQueryPhone.getWindowToken(), 0);
return true;
}
});
4.抖动EditText
1.在res/anim下创建shake.xml文件
android:duration="1000" android:fromXDelta="0" android:interpolator="@anim/cycle_7" android:toXDelta="10">
2.在res/anim下创建cycle_7.xml
android:cycles="6">
3.使用时
Animation shake = AnimationUtils.loadAnimation(QueryAddressActivity.this, R.anim.shake);
etQueryPhone.startAnimation(shake);
4. 光标在最前面
属性加上android:gravity="top"
5.EditText外面有一层包围圈
类似于下面这样
自定义一个drawable,自己画一个background,是layer-list
android:width="0.5px" android:color="@color/color_alpha_6"/> 6.设置EditText光标Cursor颜色及粗细 在android的输入框里,如果要修改光标的颜色及粗细步骤如下两步即可搞定: 1.在资源文件drawable下新建一个光标控制color_cursor.xml 2.设置EditText:android:textCursorDrawable="@drawable/color_cursor" 7.让EditText默认把软件盘的回车改为搜索 android:imeOptions="actionSearch" android:inputType="text" 8.EditText监听回车事件 //设置当enter按下时的监听事件 mEdit.setOnEditorActionListener(this); 9.让EditText 动态显示和隐藏软键盘 public static void hideSoftKeyboard(EditText editText, Context context) { if (editText != null && context != null) { InputMethodManager imm = (InputMethodManager) context .getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(editText.getWindowToken(), 0); } } public static void showSoftKeyboard(EditText editText, Context context) { if (editText != null && context != null) { InputMethodManager imm = (InputMethodManager) context .getSystemService(Activity.INPUT_METHOD_SERVICE); imm.showSoftInput(editText, 0); } } 10.监听EditText文本输入的变化 mEdit.addTextChangedListener(this); 11.让EditText不能自动获取焦点 解决之道:在EditText的父级控件中找一个,设置成 android:focusable="true" android:focusableInTouchMode="true" 12.EditText 下划线颜色更改 styles里apptheme(app主题) 加 @color/primary_blue(其他颜色也行) 13.EditText默认时不弹出软键盘的方法 在 父 Activity 中 onCreate 中加上 getWindow().setSoftInputMode( WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN);