Android में कस्टम लिस्ट व्यू में सर्च फीचर इम्प्लीमेंट करना
यह ट्यूटोरियल दिखाता है कि कैसे एक कस्टम लिस्ट व्यू में सर्च फंक्शनैलिटी जोड़ी जाती है, जिससे यूजर लिस्ट आइटम्स को रियल-टाइम में फ़िल्टर कर सकते हैं।
चरण 1: नया प्रोजेक्ट बनाएं
Android Studio में File → New Project चुनकर नया प्रोजेक्ट बनाएं।
चरण 2: लेआउट डिज़ाइन करें
res/layout/activity_main.xml में EditText (सर्च के लिए) और ListView जोड़ें:
<?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="8dp"
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 में लॉजिक जोड़ें
src/MainActivity.java में ArrayAdapter और TextWatcher का उपयोग करके सर्च इम्प्लीमेंट करें:
import androidx.appcompat.app.AppCompatActivity;
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 java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
ListView listView;
ArrayList<String> months = new ArrayList<>();
ArrayAdapter<String> arrayAdapter;
EditText etSearch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = findViewById(R.id.listView);
etSearch = findViewById(R.id.etSearch);
// डेटा जोड़ें
String[] monthArray = {"जनवरी", "फरवरी", "मार्च", "अप्रैल", "मई", "जून",
"जुलाई", "अगस्त", "सितंबर", "अक्टूबर", "नवंबर", "दिसंबर"};
for (String month : monthArray) {
months.add(month);
}
arrayAdapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, months);
listView.setAdapter(arrayAdapter);
// सर्च फंक्शनैलिटी
etSearch.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
arrayAdapter.getFilter().filter(s);
}
@Override
public void afterTextChanged(Editable s) {}
});
}
}
चरण 4: मैनिफेस्ट कॉन्फ़िगरेशन
सुनिश्चित करें कि AndroidManifest.xml में मुख्य एक्टिविटी सही ढंग से घोषित है।
बेहतर सर्च के लिए टिप्स
- केस-इनसेंसिटिव सर्च के लिए कस्टम फ़िल्टर बनाएं
- बड़े डेटासेट के लिए RecyclerView और Filterable इंटरफेस का उपयोग करें
- सर्च रिजल्ट्स हाईलाइट करने के लिए SpannableString का उपयोग करें
ऐप टेस्ट करें
डिवाइस कनेक्ट करें, ऐप चलाएं, और सर्च बॉक्स में टाइप करके लिस्ट फ़िल्टरिंग देखें।