home top ad

How to use SearchView in andriod studio

Hello friends today will we learn about How to use SearchView in andriod studioWe use searchview in many of our apps, in which we can find the file we need from many of our files.
let's start how to use searchview in android studio. First of all we will create a project in android-studio.After creating the project we will see two files activity_main.xml and MainActivity.java.We will use a ListView in activity_main.xml In which we will show the file.

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

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

</RelativeLayout>
now we use this layout in MainActivity.java

MainActivity.java
package com.example.searchviewexample;

import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.SearchView;

import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class MainActivity extends AppCompatActivity {

    private ListView listView;
    private String[]str={"Android","Java","Python","C++","HTML","Kotlin","CSS","C#","JavaScript","R"};
    ArrayAdapter<String>arrayAdapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView=findViewById(R.id.listView);
        arrayAdapter=new ArrayAdapter<>(this, android.R.layout.simple_list_item_1,str);
        listView.setAdapter(arrayAdapter);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main_menu,menu);
        MenuItem menuItem=menu.findItem(R.id.search);
        SearchView searchView= (SearchView) menuItem.getActionView();
        searchView.setQueryHint("Type hee to search");
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                arrayAdapter.getFilter().filter(newText);

                return true;
            }
        });

        return super.onCreateOptionsMenu(menu);

    }
}
Here we have used activity_main, in which we have used ListView which we have used in MainActivity.Then we have used an ArrayAdapter in which we have used three parameters context layout and value which is of a string type.Then we will override a method onCreateOptionsMenu in which we have used layout named main_menu whose code is given below.
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

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


</menu>
In onCreateOptionsMenu we will override all methods of SearchView.
Thank you

Post a Comment

0 Comments