Blog Details

img
Design

How do I put the Search view on my Android toolbar

Spoke Right / 20 Nov, 2023

Other than the Activity layout, the SearchView widget can also be implemented over ToolBar/ActionBar. Create the menu option and place a SearchView widget on it, to implement the SearchView over ToolBar.

Example of SearchView on ToolBar (ActionBar):

In the below example, we are demonstrating the SearchView over ToolBar and searching data in ListView.

activity_main.xml:

In the activity_main.xml file, we will add the ListView.



 
    
 

menu.xml:

We will place the code to place the SearchView widget over ToolBar, in the menu.xml file in the menu folder. To create the menu folder, right-click on the res folder, then click New, select Directory and name it as menu. The menu.xml file then needs to be created inside the menu folder.


 

Activity class:(File: MainActivity.java)

package com.example.radioapp;
 
import android.support.v4.view.MenuItemCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.SearchView;
import android.widget.Toast;
 
import java.util.ArrayList;
 
public class MainActivity extends AppCompatActivity {
 
    ListView listView;
    ArrayList list;
    ArrayAdapter adapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        listView = (ListView) findViewById(R.id.listView);
 
        list = new ArrayList<>();
        list.add("A1");
        list.add("B2");
        list.add("C3");
        list.add("D4");
        list.add("E5");
        list.add("F6");
        list.add("G7");
        list.add("H8");
        list.add("I9");
        list.add("J10");
 
        adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1,list);
        listView.setAdapter(adapter);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        MenuItem searchViewItem = menu.findItem(R.id.app_bar_search);
        final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchViewItem);
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                searchView.clearFocus();
             /*   if(list.contains(query)){
                    adapter.getFilter().filter(query);
                }else{
                    Toast.makeText(MainActivity.this, "No Match found",Toast.LENGTH_LONG).show();
                }*/
                return false;
 
            }
 
            @Override
            public boolean onQueryTextChange(String newText) {
                adapter.getFilter().filter(newText);
                return false;
            }
        });
        return super.onCreateOptionsMenu(menu);
    }
}

0 comments

Warning: PHP Startup: Unable to load dynamic library 'imagick.so' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20210902/imagick.so (/usr/local/lib/php/extensions/no-debug-non-zts-20210902/imagick.so: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20210902/imagick.so.so (/usr/local/lib/php/extensions/no-debug-non-zts-20210902/imagick.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0