📜  工具栏中的 android searchview (1)

📅  最后修改于: 2023-12-03 15:25:24.596000             🧑  作者: Mango

Android SearchView工具栏组件介绍

在Android开发中,搜索功能是非常常见的一个功能。为了让用户更加方便地进行搜索操作,Android系统提供了SearchView工具栏组件,我们可以将该组件放置在工具栏中,使得用户可以随时输入关键字进行搜索。本文将主要介绍如何在工具栏中使用Android SearchView组件。

何为Android SearchView

Android SearchView是一个界面组件,专门用于实现搜索功能。它不仅能够呈现搜索框、搜索按钮等界面元素,还可以进行搜索查询、搜索历史记录等功能,非常实用。在Android系统中,SearchView是继承自LinearLayout的,支持添加一系列的子界面组件,比如:EditText、ImageButton等。

如何在工具栏中使用SearchView

在Android系统中,Toolbar是一个非常强大的界面组件,可以充当ActionBar的替代品。我们可以使用Toolbar组件轻松地实现搜索功能。具体实现方法如下:

  • 在布局文件中添加Toolbar组件,并添加菜单按钮
<androidx.appcompat.widget.Toolbar
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/colorPrimary"
    app:menu="@menu/menu_toolbar"
    app:title="@string/app_name" />
  • 创建menu_toolbar.xml文件,并添加SearchView组件
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
 
    <item
        android:id="@+id/action_search"
        android:icon="@drawable/ic_search_white"
        android:title="@string/search"
        app:actionViewClass="androidx.appcompat.widget.SearchView"
        app:showAsAction="always" />
 
</menu>
  • 在Activity类中添加实现代码,监听搜索框输入
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_toolbar, menu);
    MenuItem searchItem = menu.findItem(R.id.action_search);
    SearchView searchView = (SearchView) searchItem.getActionView();
    searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
        @Override
        public boolean onQueryTextSubmit(String query) {
            // 提交后进行的操作
            return false;
        }

        @Override
        public boolean onQueryTextChange(String newText) {
            // 文字变化时的操作
            return false;
        }
    });
    return true;
}
总结

在Android开发中,使用Toolbar和SearchView组件进行搜索操作是非常常见的一个技能。通过本文,我们了解到了如何在工具栏中使用SearchView组件,实现搜索功能,并监听搜索框输入。实际开发中,我们要根据需求灵活运用SearchView组件,让用户体验更加方便。