最近做项目,用到了几个管与edittext相关的属性,做个记录
项目页面上有一个查询框,用edittext写的,每次进入页面都默认弹出软键盘,因为每次进入页面它会默认获取到焦点,所以解决的办法就不让它获取焦点
android:focusableInTouchMode="true"将这句代码复制到edittext的父控件上,将焦点给到他父控件,可以解决
另外网上查到的方法还有
在清单文件里,对应activity中加入
android:windowSoftInputMode="stateHidden"让edittext永远弹不出软键盘
edit.setInputType(InputType.TYPE_NULL);监听有两种
(1)使用textWatcher,自己写一个监听,继承textWatcher
public class MyEditTextChangeListener implements 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) { } /** * f * 编辑框的内容改变以后,用户没有继续输入时 的回调方法 */ @Override public void afterTextChanged(Editable editable) { } }(2)OnEditorActionListener,对软键盘的回车键点击的监听
edit.setSearchTopEditListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (event != null) { // 此处有switch,是因为点击回车的时候,按下和抬起都会触发该监听,此处我选择的Down,因为不知道为什么按下的监听event总是返回null switch (event.getAction()) { case KeyEvent.ACTION_DOWN: searchAndShow(v); return true; default: return true; } } return false;//返回true,保留软键盘。false,隐藏软键盘 } });做的搜索框,弹出的软键盘必然是搜索的样式,而不是一个回车的样式! 这里用到edittext的imeOptions属性
软键盘下方变成"搜索" android:imeOptions="actionSearch" 软键盘下方变成“完成” android:imeOptions="actionDone" 软键盘下方变成“发送” android:imeOptions="actionSend"