创建安卓搜索框一般有两种方法,使用EditText控件或使用SearchView控件;因为SearchView自由度和效果感觉没有EditText好,建议使用EditText控件;SearchView建议与ToolBar和menu配合使用。
1. EditText
EditText制作搜索框只需要使用setOnEditorActionListener()方法设置一个编辑活动监听器,当检测到键盘输入为搜索或回车时执行指定搜索活动。
editText.setOnEditorActionListener(new TextView.OnEditorActionListener() {public boolean onEditorAction(TextView textView, int i, KeyEvent keyEvent) {if(i== EditorInfo.IME_ACTION_SEARCH |(keyEvent != null && keyEvent.getAction() == KeyEvent.ACTION_DOWN && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER)){//执行搜索return true;}return false;}
});
建议对EditText控件进行的设置有:
最大行数(maxLines)
回车变搜索(imeOperation="actionSearch")(如果进行了该设置,那么编辑活动监听器只需要监听搜索即可)请注意,设置该属性一定要设置inputType属性,否则无效。
输入提示(hint)
输入类型(inputType)
<EditText... ...android:hint="输入提示"android:imeOptions="actionSearch"android:maxLines="1" />
2.SearchView
一般不推荐直接使用SearchView,建议与Toolbar和menu配合使用。
直接使用如下:
<androidx.appcompat.widget.SearchView... ...app:iconifiedByDefault="true" //是否默认为图标化app:queryHint="输入提示-需要点开后(非图标化)才显示"/>
searchView.setOnSearchClickListener(new View.OnClickListener() {public void onClick(View view) {//执行搜索}
});
与Toolbar和menu配合使用如下:
SearchView(搜索框)与Menu(菜单)配合使用-CSDN博客