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

Kotlin का उपयोग करके Android में कस्टम ListView में खोज कार्यक्षमता कैसे जोड़ें?

यह उदाहरण दर्शाता है कि Kotlin में TextWatcher और ArrayAdapter के बिल्ट-इन फ़िल्टर का उपयोग करके ListView में खोज/फ़िल्टर कार्यक्षमता कैसे लागू करें।

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

Android Studio: File → New Project।

चरण 2 - 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"
    android:padding="4dp"
    tools:context=".MainActivity">
    <EditText
        android:id="@+id/etSearch"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="यहां खोजें..." />
    <ListView
        android:id="@+id/listView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/etSearch" />
</RelativeLayout>

चरण 3 - MainActivity.kt में खोज लागू करें

import android.os.Bundle
import android.text.Editable
import android.text.TextWatcher
import android.widget.ArrayAdapter
import android.widget.EditText
import android.widget.ListView
import androidx.appcompat.app.AppCompatActivity

class MainActivity : AppCompatActivity() {
    private lateinit var listView: ListView
    private lateinit var etSearch: EditText
    private val months = mutableListOf()
    private var adapter: ArrayAdapter? = null

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

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

        // महीनों की सूची भरें
        months.addAll(listOf(
            "जनवरी", "फरवरी", "मार्च", "अप्रैल", "मई", "जून",
            "जुलाई", "अगस्त", "सितंबर", "अक्टूबर", "नवंबर", "दिसंबर"
        ))

        adapter = ArrayAdapter(this, android.R.layout.simple_list_item_1, months)
        listView.adapter = adapter

        // TextWatcher के साथ खोज फ़िल्टर
        etSearch.addTextChangedListener(object : TextWatcher {
            override fun beforeTextChanged(s: CharSequence, start: Int, count: Int, after: Int) {}
            
            override fun onTextChanged(s: CharSequence, start: Int, before: Int, count: Int) {
                adapter?.filter?.filter(s)
            }
            
            override fun afterTextChanged(s: Editable) {}
        })
    }
}

चरण 4 - AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="com.example.listviewsearch">
    <application ...>
        <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>

ऐप चलाएं

ऐप चलाएं। खोज बॉक्स में टाइप करना शुरू करें (उदाहरण: "जन")। ListView स्वतः फ़िल्टर होकर केवल मेल खाने वाले आइटम दिखाएगा ("जनवरी", "जून", "जुलाई")।

कस्टम एडाप्टर के लिए: यदि आप कस्टम एडाप्टर उपयोग कर रहे हैं, तो Filterable इंटरफ़ेस लागू करें और getFilter() ओवरराइड करें:
class CustomAdapter(...) : BaseAdapter(), Filterable {
    override fun getFilter(): Filter = object : Filter() {
        override fun performFiltering(constraint: CharSequence?): FilterResults { ... }
        override fun publishResults(constraint: CharSequence?, results: FilterResults?) { ... }
    }
}
आधुनिक विकल्प: RecyclerView के साथ SearchView (टूलबार में) या Filterable एडाप्टर का उपयोग करें।
  1. Android ListView में फुटर (Footer) कैसे जोड़ें? Android ListView में फुटर (Footer) कैसे जोड़ें?

    Android ListView में कस्टम फुटर व्यू जोड़ना ListView के अंत में एक फुटर व्यू (जैसे सूची समाप्त संदेश) जोड़ने का तरीका सीखें। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project से प्रोजेक्ट बनाएं। चरण 2: मेन लेआउट में ListView res/layout/activity_main.xml: <RelativeLayout xmlns:and

  1. Android में ListView के लिए कस्टम एडाप्टर कैसे बनाएं? Android में ListView के लिए कस्टम एडाप्टर कैसे बनाएं?

    Android ListView के लिए कस्टम एडाप्टर बनाना यह उदाहरण दर्शाता है कि BaseAdapter को एक्सटेंड करके कस्टम एडाप्टर कैसे बनाया जाए, जो कस्टम डेटा मॉडल और कस्टम रो लेआउट के साथ ListView में डेटा बाइंड करता है। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनें। चरण 2: मेन लेआउट (res/

  1. Android में कस्टम लिस्ट व्यू में सर्च फंक्शनैलिटी कैसे जोड़ें? Android में कस्टम लिस्ट व्यू में सर्च फंक्शनैलिटी कैसे जोड़ें?

    Android में कस्टम लिस्ट व्यू में सर्च फीचर इम्प्लीमेंट करना यह ट्यूटोरियल दिखाता है कि कैसे एक कस्टम लिस्ट व्यू में सर्च फंक्शनैलिटी जोड़ी जाती है, जिससे यूजर लिस्ट आइटम्स को रियल-टाइम में फ़िल्टर कर सकते हैं। चरण 1: नया प्रोजेक्ट बनाएं Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाए