How to Create Search Button in Toolbar | Filter or Search in Listview | Search# View Tutorial

How to Create Search Button in Toolbar | Filter or Search in Listview | Search# View Tutorial



Full tutorial is given below. Dear Viewer we are working hard to maintain this website. We doesn't want any think from you. Its just a humble request If you thinks that this posts helps you please share this post with your friends.



How to create search view button on toolbar. Search or filter from list


So, first of all add this code into your activity layout file

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_content"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">



    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="fill_parent" />



</RelativeLayout>









Now create create new item

First right click
>> on res
>> then New
>> then Android Resource Directory
>> a pop up will appear
>> then in Directory name: type the name of your Directory or Folder
>> then in Resource Type: select the option menu
>> then click on ok button



A folder will be created with name menu

>> then right click on menu folder
>> then New
>> then click on Menu Resource File
>> then in File name: type the name of your menu layout file
>> then click on OK

Now add this code into that res >> menu >> menu.xml file

menu.xml


<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/app_bar_search"
        android:icon="@drawable/search_button_icon"
        android:title="Search"
        app:showAsAction="ifRoom|withText"
        app:actionViewClass="android.widget.SearchView"/>
    
</menu>












Now to add icon right click on 
>> drawable
>> then New
>> then Vector Asset
>> then search and select your icon 
>> then click on Next button
>> then click on Finish Button






Now add this code into your MainActivity.java file

MainActivity.java


package com.usmtip.demoappbyusmtip;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.view.MenuItemCompat;

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 {

    // Declare Variables
    ListView listView;
    ArrayList<String> list;
    ArrayAdapter<String > adapter;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        // Find by ID
        listView = (ListView) findViewById(R.id.listView);


        // Your List you can add or remove here your list
        list = new ArrayList<>();
        list.add("usmtip");
        list.add("Channel");
        list.add("Subscribe");
        list.add("And");
        list.add("Turn");
        list.add("On");
        list.add("Bell");
        list.add("Notification");
        list.add("usmtip");
        list.add("Best Channel to Learn");
        list.add("User Support");
        list.add("Comments Reply");
        list.add("Any Problem");
        list.add("Latest Tutorials");
        list.add("Working");
        list.add("Channel usmtip");
        list.add("Subscribe usmtip");
        list.add("And usmtip");
        list.add("Turn usmtip");
        list.add("Bell usmtip");

        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,list);
        listView.setAdapter(adapter);
    }


    // Search View
    @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);
    }
}




That's it now run your app ......!











All Server Links to Download This File:



Previous Post
Next Post

post written by:

0 Comments: