android searchview toolbar code example

Example 1: android searchview in toolbar

You have to use Appcompat library for that. Which is used like below:

dashboard.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
      xmlns:tools="http://schemas.android.com/tools"
      xmlns:app="http://schemas.android.com/apk/res-auto">

    <item
        android:id="@+id/action_search"
        android:icon="@android:drawable/ic_menu_search"
        app:showAsAction="always|collapseActionView"
        app:actionViewClass="androidx.appcompat.widget.SearchView"
        android:title="Search"/>
</menu>

Activity file (in Java):

public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater menuInflater = getMenuInflater();
    menuInflater.inflate(R.menu.dashboard, menu);

     MenuItem searchItem = menu.findItem(R.id.action_search);

    SearchManager searchManager = (SearchManager) MainActivity.this.getSystemService(Context.SEARCH_SERVICE);

    SearchView searchView = null;
    if (searchItem != null) {
        searchView = (SearchView) searchItem.getActionView();
    }
    if (searchView != null) {
        searchView.setSearchableInfo(searchManager.getSearchableInfo(MainActivity.this.getComponentName()));
    }
        return super.onCreateOptionsMenu(menu);
}

Activity file (in Kotlin):

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
    menuInflater.inflate(R.menu.menu_search, menu)

    val searchItem: MenuItem? = menu?.findItem(R.id.action_search)
    val searchManager = getSystemService(Context.SEARCH_SERVICE) as SearchManager
    val searchView: SearchView? = searchItem?.actionView as SearchView

    searchView?.setSearchableInfo(searchManager.getSearchableInfo(componentName))
    return super.onCreateOptionsMenu(menu)
}

manifest file:

<meta-data 
      android:name="android.app.default_searchable" 
      android:value="com.apkgetter.SearchResultsActivity" /> 

        <activity
            android:name="com.apkgetter.SearchResultsActivity"
            android:label="@string/app_name"
            android:launchMode="singleTop" >
            <intent-filter>
                <action android:name="android.intent.action.SEARCH" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
            </intent-filter>

            <meta-data
                android:name="android.app.searchable"
                android:resource="@xml/searchable" />
        </activity>

searchable xml file:

<?xml version="1.0" encoding="utf-8"?>
<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:hint="@string/search_hint"
    android:label="@string/app_name" />

And at last, your SearchResultsActivity class code. for showing result of your search.

Example 2: search bar android studio kotlin

override fun onCreateOptionsMenu(menu: Menu): Boolean {    menuInflater.inflate(R.menu.search_menu, menu)    val searchItem: MenuItem = menu.findItem(R.id.action_search)    if (searchItem != null) {        searchView = MenuItemCompat.getActionView(searchItem) as SearchView        searchView.setOnCloseListener(object : SearchView.OnCloseListener {            override fun onClose(): Boolean {                return true            }        })        val searchPlate =        searchView.findViewById(androidx.appcompat.R.id.search_src_text) as EditText        searchPlate.hint = "Search"        val searchPlateView: View =            searchView.findViewById(androidx.appcompat.R.id.search_plate)        searchPlateView.setBackgroundColor(            ContextCompat.getColor(                this,                android.R.color.transparent            )        )        searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {            override fun onQueryTextSubmit(query: String?): Boolean {// do your logic here                Toast.makeText(applicationContext, query, Toast.LENGTH_SHORT).show()                return false            }            override fun onQueryTextChange(newText: String?): Boolean {                return false            }        })        val searchManager =            getSystemService(Context.SEARCH_SERVICE) as SearchManager        searchView.setSearchableInfo(searchManager.getSearchableInfo(componentName))    }    return super.onCreateOptionsMenu(menu)}onQueryTextSubmit

Tags:

Java Example