Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Android

Android Toolbar में SearchView का उपयोग कैसे करें?

Android Toolbar/ActionBar में SearchView जोड़कर ListView फ़िल्टर करना

टूलबार में सर्च आइकन जोड़कर ListView डेटा को रियल-टाइम फ़िल्टर करने का पूरा उदाहरण।

चरण 1: नया प्रोजेक्ट बनाएं

Android Studio में File → New Project।

चरण 2: लेआउट में Toolbar और ListView

res/layout/activity_main.xml:

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

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="?attr/colorPrimary"
        android:minHeight="?attr/actionBarSize"
        app:theme="@style/ThemeOverlay.AppCompat.Dark" />

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

    <TextView
        android:id="@+id/emptyView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:text="No Results"
        android:textSize="20sp"
        android:visibility="gone" />

</RelativeLayout>

चरण 3: मेनू रिसोर्स फ़ाइल बनाएं

res/menu/menu.xml:

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

    <item
        android:id="@+id/appSearchBar"
        android:icon="@android:drawable/ic_menu_search"
        android:title="Search"
        app:showAsAction="ifRoom|collapseActionView"
        app:actionViewClass="android.support.v7.widget.SearchView" />

</menu>

चरण 4: strings.xml में डेटा ऐरे

res/values/strings.xml:

<resources>
    <string name="app_name">Sample</string>
    <string-array name="months_array">
        <item>January</item> <item>February</item> <item>March</item>
        <item>April</item> <item>May</item> <item>June</item>
        <item>July</item> <item>August</item> <item>September</item>
        <item>October</item> <item>November</item> <item>December</item>
    </string-array>
</resources>

चरण 5: MainActivity.java में SearchView लॉजिक

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.SearchView;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    Toolbar toolbar;
    ListView listView;
    TextView emptyView;
    ArrayAdapter<String> adapter;

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

        toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        listView = findViewById(R.id.listView);
        emptyView = findViewById(R.id.emptyView);

        String[] months = getResources().getStringArray(R.array.months_array);
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, months);
        listView.setAdapter(adapter);
        listView.setEmptyView(emptyView);

        listView.setOnItemClickListener((parent, view, position, id) ->
                Toast.makeText(this, adapter.getItem(position), Toast.LENGTH_SHORT).show());
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.menu, menu);

        MenuItem searchItem = menu.findItem(R.id.appSearchBar);
        SearchView searchView = (SearchView) searchItem.getActionView();
        searchView.setQueryHint("Search months...");

        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                return false;
            }

            @Override
            public boolean onQueryTextChange(String newText) {
                adapter.getFilter().filter(newText);
                return true;
            }
        });

        return super.onCreateOptionsMenu(menu);
    }
}

चरण 6: AndroidManifest.xml

मानक मैनिफेस्ट।

ऐप चलाएं

टूलबार में सर्च आइकन दबाएं, टाइप करें - ListView रियल-टाइम फ़िल्टर होगा।

Android Toolbar में SearchView का उपयोग कैसे करें? Android Toolbar में SearchView का उपयोग कैसे करें? Android Toolbar में SearchView का उपयोग कैसे करें?
  1. एंड्रॉइड एप्लिकेशन में फायरबेस मैसेजिंग का उपयोग कैसे करें? एंड्रॉइड एप्लिकेशन में फायरबेस मैसेजिंग का उपयोग कैसे करें?

    एंड्रॉइड में फायरबेस क्लाउड मैसेजिंग (FCM) सेटअप यह गाइड एक आधुनिक एंड्रॉइड ऐप (Kotlin/Java) में FCM को एंड-टू-एंड कवर करता है: निर्भरताएं, मैनिफेस्ट, टोकन हैंडलिंग, फोरग्राउंड/बैकग्राउंड संदेश, और नोटिफिकेशन चैनल (API 26+) 1. निर्भरताएं (build.gradle.kts / .gradle) dependencies { // Firebase B

  1. एंड्रॉइड में SearchView का उपयोग कैसे करें? एंड्रॉइड में SearchView का उपयोग कैसे करें?

    एंड्रॉइड में SearchView के साथ लिस्ट फिल्टरिंग यह ट्यूटोरियल SearchView को ListView और ArrayAdapter के साथ इंटीग्रेट करके रियल-टाइम फिल्टरिंग लागू करने का तरीका दिखाता है। लेआउट (activity_main.xml) <RelativeLayout xmlns:android=https://schemas.android.com/apk/res/android android:layout_width

  1. एंड्रॉइड में XMLPullParser से XML पार्स कैसे करें? एंड्रॉइड में XMLPullParser से XML पार्स कैसे करें?

    एंड्रॉइड में XMLPullParser का उपयोग करके XML डेटा पार्स करना XMLPullParser एंड्रॉइड में XML प्रोसेसिंग के लिए एक हल्का, कुशल और लो-मेमोरी पार्सर है। यह पुल मॉडल पर काम करता है — यानी आप पार्सर से अगला इवेंट मांगते हैं, बजाय इसके कि पार्सर आपको कॉलबैक दे (जैसे SAX)। यह बड़े XML फाइल्स के लिए आदर्श है