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
首先:
android:layout_width="match_parent"
android:layout_height="50dp"
android:orientation="horizontal">
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" />
其中:
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;
}
});
效果如下:
原文:http://my.oschina.net/wvliang/blog/484283