কম্পিউটার টিউটোরিয়াল

এন্ড্রয়েডে SearchView ব্যবহার করার পদ্ধতি

এন্ড্রয়েডে SearchView ব্যবহার করে লিস্ট ফিল্টার করার ধাপাবলী

এই উদাহরণটি দেখায় কীভাবে SearchView এবং ArrayAdapter-এর বিল্ট-ইন ফিল্টার ব্যবহার করে একটি লিস্ট ভিউ-এ রিয়েল-টাইম সার্চ/ফিল্টার করা যায়।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট ফাইল (res/layout/activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <SearchView
        android:id="@+id/searchView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:queryHint="এখানে সার্চ করুন"
        android:iconifiedByDefault="false"
        android:layout_alignParentTop="true" />
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:divider="#ad5"
        android:dividerHeight="2dp"
        android:layout_below="@+id/searchView" />
</RelativeLayout>

ধাপ ৩: মূল এক্টিভিটি লজিক (src/MainActivity.java)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
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 {
    SearchView searchView;
    ListView listView;
    ArrayList<String> list;
    ArrayAdapter<String> adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        searchView = findViewById(R.id.searchView);
        listView = findViewById(R.id.listView);
        
        list = new ArrayList<>();
        list.add("আপেল");
        list.add("কলা");
        list.add("আনারস");
        list.add("কমলা");
        list.add("আম");
        list.add("আঙুর");
        list.add("লেবু");
        list.add("বাঙ্গি");
        list.add("তরমুজ");
        list.add("পেঁপে");
        
        adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, list);
        listView.setAdapter(adapter);
        
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                if (list.contains(query)) {
                    adapter.getFilter().filter(query);
                } else {
                    Toast.makeText(MainActivity.this, "কোনো মিল পাওয়া যায়নি", Toast.LENGTH_LONG).show();
                }
                return false;
            }

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

ধাপ ৪: ম্যানিফেস্ট ফাইল (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

গুরুত্বपूर्ण পয়েন্ট

  • adapter.getFilter().filter(query) - এটি ArrayAdapter-এর বিল্ট-ইন ফিল্টার ব্যবহার করে
  • iconifiedByDefault="false" - সার্চ ভিউ এক্সপ্যান্ডেড অবস্থায় থাকে
  • কাস্টম অ্যাডাপ্টারের জন্য `Filterable` ইন্টারফেস ইমপ্লিমেন্ট করতে হয়

অ্যাপ্লিকেশন চালান

আপনার আসল এন্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত আছে অনুমান করি। Android Studio-তে আপনার প্রজেক্টের এক্টিভিটি ফাইল খুলুন এবং টুলবারের Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং আপনার ডিভাইসে ডিফল্ট স্ক্রিন দেখুন।

  1. এন্ড্রয়েডে SearchView ব্যবহার করার পদ্ধতি

  2. অ্যান্ড্রয়েড টুলবারে SearchView ব্যবহার করার পদ্ধতি

  3. অ্যান্ড্রয়েডে Snackbar ব্যবহার করার পদ্ধতি

  4. Android-এ NavigationView ব্যবহার করে নেভিগেশন ড্রয়ার তৈরির পদ্ধতি