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

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

SearchView এবং ListView দিয়ে ফিল্টারিং করা

এই উদাহরণটি দেখায় কিভাবে কোটলিন ব্যবহার করে এন্ড্রয়েডে SearchView উইজেট ব্যবহার করে ListView-এ থাকা ডেটা ফিল্টার করা যায়। OnQueryTextListener ইন্টারফেস ব্যবহার করা হয়েছে।

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

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

ধাপ ২: লেআউট XML ফাইল কনফিগার করুন

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">

    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/searchView"
        android:divider="#ad5"
        android:dividerHeight="2dp" />

    <SearchView
        android:id="@+id/searchView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:iconifiedByDefault="false"
        android:queryHint="এখানে খুঁজুন" />

</RelativeLayout>

ধাপ ৩: MainActivity.kt ফাইলে লজিক লিখুন

import android.os.Bundle
import android.widget.ArrayAdapter
import android.widget.ListView
import android.widget.SearchView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    lateinit var searchView: SearchView
    lateinit var listView: ListView
    lateinit var list: ArrayList<String>
    lateinit var adapter: ArrayAdapter<*>

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        title = "KotlinApp"

        searchView = findViewById(R.id.searchView)
        listView = findViewById(R.id.listView)

        list = ArrayList()
        list.add("Apple")
        list.add("Banana")
        list.add("Pineapple")
        list.add("Orange")
        list.add("Mango")
        list.add("Grapes")
        list.add("Lemon")
        list.add("Melon")
        list.add("Watermelon")
        list.add("Papaya")

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

        searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
            override fun onQueryTextSubmit(query: String): Boolean {
                if (list.contains(query)) {
                    adapter.filter.filter(query)
                } else {
                    Toast.makeText(this@MainActivity, "মিলান পাওয়া যায়নি", Toast.LENGTH_LONG).show()
                }
                return false
            }

            override fun onQueryTextChange(newText: String): Boolean {
                adapter.filter.filter(newText)
                return false
            }
        })
    }
}

ধাপ ৪: AndroidManifest.xml আপডেট করুন

সাধারণ ম্যানিফেস্ট কনফিগারেশন যথেষ্ট।

অ্যাপ্লিকেশন চালানোর পদ্ধতি

ডিভাইস সংযুক্ত করে Run করুন। SearchView-এ লিখলে লিস্ট ফিল্টার হবে। এন্টার দিলে সঠিক মিল না পাওয়া গেলে টোস্ট দেখাবে।

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

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

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

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