Android SearchView: Simple Search Function Guide

To implement a simple search function, you can use the SearchView widget and SearchManager class provided in Android. Below are the steps for a simple implementation.

  1. Add a SearchView widget to the layout file.
<SearchView
    android:id="@+id/searchView"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:iconifiedByDefault="false"
    android:queryHint="Search Here"/>
  1. Obtain the SearchView widget in the Activity and set up the relevant listeners.
SearchView searchView = findViewById(R.id.searchView);
searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
    @Override
    public boolean onQueryTextSubmit(String query) {
        // 处理搜索提交事件
        return false;
    }

    @Override
    public boolean onQueryTextChange(String newText) {
        // 处理搜索文本变化事件
        return false;
    }
});
  1. Handle the search submit event in the onQueryTextSubmit method, where you can perform the search operation and update the UI to display the results.
  2. In the onQueryTextChange method, handle the event of the search text changing, where you can search in real time and update the search results.
  3. Enable the search functionality for Activity in the AndroidManifest.xml file.
<activity android:name=".MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.SEARCH"/>
    </intent-filter>
    <meta-data
        android:name="android.app.searchable"
        android:resource="@xml/searchable"/>
</activity>
  1. Create an XML file (such as searchable.xml) to define search configuration information.
<?xml version="1.0" encoding="utf-8"?>
<searchable
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:label="@string/app_name"
    android:hint="Search Here"/>

By following the above steps, a simple search function can be implemented. When a user enters a search keyword in the SearchView, the search can be conducted based on the keyword and the search results can be displayed on the UI.

bannerAds