EditText通过设置android:imeOptions来改变默认的文本或者样式。这里举几个常用的常量值:
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
首先:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="50dp" android:orientation="horizontal"> <EditText android:id="@+id/searchHeaderEdit" android:layout_width="wrap_content" android:layout_height="match_parent" android:drawableRight="@mipmap/icon_search" android:imeOptions="actionSearch" android:minWidth="300dp" android:paddingLeft="10dp" android:singleLine="true" android:textColor="@android:color/white" android:textSize="18sp" /> </LinearLayout>
其中:
android:singleLine="true"
这行是必须的,如果不设置单行,设置的imeOptions不会生效的。
然后通过:
mSearchEdit.setOnEditorActionListener(new TextView.OnEditorActionListener() { @Override public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { if (actionId == EditorInfo.IME_ACTION_SEARCH ||(event!=null&&event.getKeyCode()== KeyEvent.KEYCODE_ENTER)){ if (TextUtils.isEmpty(mSearchEdit.getText())){ mSearchEdit.requestFocus(); mSearchEdit.setError("不能为空"); }else { //do reseach } return true; } return false; } });
效果如下:
时间: 2024-10-28 23:29:44