本文主要讲述EditText的几种常用方法。
1、监听输入变化
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
}
});
2、监听删除键
viewHolder.etText.setOnKeyListener(new View.OnKeyListener() {
@Override
public boolean onKey(View view, int i, KeyEvent keyEvent) {
if (i == KeyEvent.KEYCODE_DEL && keyEvent.getAction() == KeyEvent.ACTION_DOWN) {
String text = viewHolder.etText.getText().toString();
Log.i("shenlong", "deleting text=" + text);
if (text.equals("")) {
}
}
return false;
}
});
这里要注意,除了判断KeyEvent是KEYCODE_DEL外,还要判断是输入的按下还是谈起,不然这个onKey会走2遍的。
3、监听触摸
viewHolder.etText.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
return false;
}
});
4、imeOptions属性使用
editText.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId,
KeyEvent event) {
if (actionId == EditorInfo.IME_ACTION_SEARCH) {
Toast.makeText(getActivity(), "1111111",Toast.LENGTH_SHORT).show();
}
return false;
}
});
imeOptions属性
android:imeOptions="flagNoExtractUi" //使软键盘不全屏显示,只占用一部分屏幕
同时,这个属性还能控件软键盘右下角按键的显示内容,默认情况下为回车键
android:imeOptions="actionNone" //输入框右侧不带任何提示
android:imeOptions="actionGo" //右下角按键内容为'开始'
android:imeOptions="actionSearch" //右下角按键为放大镜图片,搜索
android:imeOptions="actionSend" //右下角按键内容为'发送'
android:imeOptions="actionNext" //右下角按键内容为'下一步'
android:imeOptions="actionDone" //右下角按键内容为'完成'
另外,在贴一点inputType属性
<EditText
//电话号码
android:inputType="phone"
//文本类型,多为大写、小写和数字符号。
android:inputType="none"
android:inputType="text"
android:inputType="textCapCharacters" //字母大写
android:inputType="textCapWords" //首字母大写
android:inputType="textCapSentences" //仅第一个字母大写
android:inputType="textAutoCorrect" //自动完成
android:inputType="textAutoComplete" //自动完成
android:inputType="textMultiLine" //多行输入
android:inputType="textImeMultiLine" //输入法多行(如果支持)
android:inputType="textNoSuggestions" //不提示
android:inputType="textUri" //网址
android:inputType="textEmailAddress" //电子邮件地址
android:inputType="textEmailSubject" //邮件主题
android:inputType="textShortMessage" //短讯
android:inputType="textLongMessage" //长信息
android:inputType="textPersonName" //人名
android:inputType="textPostalAddress" //地址
android:inputType="textPassword" //密码
android:inputType="textVisiblePassword" //可见密码
android:inputType="textWebEditText" //作为网页表单的文本
android:inputType="textFilter" //文本筛选过滤
android:inputType="textPhonetic" //拼音输入
//数值类型
android:inputType="number" //数字
android:inputType="numberSigned" //带符号数字格式
android:inputType="numberDecimal" //带小数点的浮点格式
android:inputType="datetime" //时间日期
android:inputType="date" //日期键盘
android:inputType="time" //时间键盘
/>
具体使用可以参考博客
EditText中imeOptions属性使用及设置无效解决