Tuesday, March 16, 2021

Android SearchView On Toolbar

 

Android SearchView on ToolBar

As we have already implemented SearchView widget over activity layout, it can also be implemented over ToolBar/ActionBar. For implementing SearchView over ToolBar, we need to create menu option and place SearchView widget on it.

Example of SearchView on ToolBar (ActionBar)

Let's us see the example of SearchView over ToolBar and searching data in ListView.

Directory Structure of this Example

android Searchview on toolbar 1

activity_main.xml

Create an activity_main.xml file in layout folder containing ListView.

File: activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="searchview.toolbar.com.searchviewtoolbar.MainActivity">  
  8.   
  9.     <ListView  
  10.         android:id="@+id/listView"  
  11.         android:layout_width="match_parent"  
  12.         android:layout_height="fill_parent"  
  13.         />  
  14.   
  15. </android.support.constraint.ConstraintLayout>  

menu.xml

Create a menu.xml file in menu folder and place the following code. This code places the SearchView widget over ToolBar.

File: menu.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <menu xmlns:app="http://schemas.android.com/apk/res-auto"  
  3. xmlns:android="http://schemas.android.com/apk/res/android">  
  4.   
  5. <item  
  6.     android:id="@+id/app_bar_search"  
  7.     android:icon="@drawable/ic_search_black_24dp"  
  8.     android:title="Search"  
  9.     app:showAsAction="ifRoom|withText"  
  10.     app:actionViewClass="android.widget.SearchView"/>  
  11. </menu>  

Activity class

File: MainActivity.java

  1. package searchview.toolbar.com.searchviewtoolbar;  
  2.   
  3. import android.support.v4.view.MenuItemCompat;  
  4. import android.support.v7.app.AppCompatActivity;  
  5. import android.os.Bundle;  
  6. import android.view.Menu;  
  7. import android.view.MenuInflater;  
  8. import android.view.MenuItem;  
  9. import android.widget.ArrayAdapter;  
  10. import android.widget.ListView;  
  11. import android.widget.SearchView;  
  12. import android.widget.Toast;  
  13.   
  14. import java.util.ArrayList;  
  15.   
  16. public class MainActivity extends AppCompatActivity {  
  17.   
  18.     ListView listView;  
  19.     ArrayList<String> list;  
  20.     ArrayAdapter<String > adapter;  
  21.     @Override  
  22.     protected void onCreate(Bundle savedInstanceState) {  
  23.         super.onCreate(savedInstanceState);  
  24.         setContentView(R.layout.activity_main);  
  25.   
  26.         listView = (ListView) findViewById(R.id.listView);  
  27.   
  28.         list = new ArrayList<>();  
  29.         list.add("Apple");  
  30.         list.add("Banana");  
  31.         list.add("Pineapple");  
  32.         list.add("Orange");  
  33.         list.add("Lychee");  
  34.         list.add("Gavava");  
  35.         list.add("Peech");  
  36.         list.add("Melon");  
  37.         list.add("Watermelon");  
  38.         list.add("Papaya");  
  39.   
  40.         adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);  
  41.         listView.setAdapter(adapter);  
  42.     }  
  43.   
  44.     @Override  
  45.     public boolean onCreateOptionsMenu(Menu menu) {  
  46.         MenuInflater inflater = getMenuInflater();  
  47.         inflater.inflate(R.menu.menu, menu);  
  48.         MenuItem searchViewItem = menu.findItem(R.id.app_bar_search);  
  49.         final SearchView searchView = (SearchView) MenuItemCompat.getActionView(searchViewItem);  
  50.         searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {  
  51.             @Override  
  52.             public boolean onQueryTextSubmit(String query) {  
  53.                 searchView.clearFocus();  
  54.              /*   if(list.contains(query)){ 
  55.                     adapter.getFilter().filter(query); 
  56.                 }else{ 
  57.                     Toast.makeText(MainActivity.this, "No Match found",Toast.LENGTH_LONG).show(); 
  58.                 }*/  
  59.                 return false;  
  60.   
  61.             }  
  62.   
  63.             @Override  
  64.             public boolean onQueryTextChange(String newText) {  
  65.                 adapter.getFilter().filter(newText);  
  66.                 return false;  
  67.             }  
  68.         });  
  69.         return super.onCreateOptionsMenu(menu);  
  70.     }  
  71. }  

Output

android Searchview on toolbar 2
android Searchview on toolbar 3
android Searchview on toolbar 4 

No comments:

Post a Comment

Inapp update

  Inapp update https://desk.zoho.com/portal/vegabirdtech/en/kb/articles/how-to-use-burp-suite-with-android-mobile