安卓搜索框,EditText,SearchView

创建安卓搜索框一般有两种方法,使用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博客

猜你喜欢

转载自blog.csdn.net/m0_57150356/article/details/134717607