Fungsi pencarian merupakan elemen mendasar dari aplikasi Android modern. Hal ini memungkinkan pengguna untuk dengan cepat menemukan informasi yang mereka cari, baik itu artikel, produk, atau data lain dalam aplikasi. Dalam tutorial ini kami akan menunjukkan cara membuat fungsi pencarian sederhana di aplikasi Android menggunakan SearchView dan RecyclerView.
Persiapan proyek
Untuk memulai, buat proyek baru di Android Studio. Pilih “Aktivitas Kosong” sebagai templat dan berikan nama apa pun yang Anda suka pada proyek Anda.
Tambahkan dependensi
Pastikan Anda memiliki dependensi yang diperlukan dalam file tersebut membangun.gradle (Modul: aplikasi) tambahkan. Untuk menggunakan RecyclerView dan SearchView, tambahkan kode berikut:
ketergantungan {
implementasi ‘androidx.recyclerview:recyclerview:1.2.1’
implementasi ‘androidx.appcompat:appcompat:1.3.1’
}
Buat tata letak
Sekarang kita membuat tata letak untuk tampilan utama dan elemen tampilan yang akan ditampilkan di RecyclerView. Berikut adalah tata letak untuk aktivitas utama (aktivitas_utama.xml):
<androidx.constraintlayout.widget.ConstraintLayout XML:android=”http://schemas.android.com/apk/res/android”
xmlns:aplikasi=”http://schemas.android.com/apk/res-auto”
xmlns:alat=”http://schemas.android.com/alat”
android:layout_width=”cocokkan_induk”
android:layout_height=”cocokkan_induk”
alat:konteks=”.MainActivity”>
<androidx.appcompat.widget.TampilanPencarian
android:id=”@+id/tampilanpencarian”
android:layout_width=”bungkus_konten”
android:layout_height=”bungkus_konten”
android:queryHint=”Cari…”/>
<androidx.recyclerview.widget.RecyclerView
android:id=”@+id/tampilandaurulang”
android:layout_width=”cocokkan_induk”
android:layout_height=”cocokkan_induk”
android:layout_di bawah=”@id/tampilanpencarian”
android:paddingTop=”8dp”/>
</androidx.constraintlayout.widget.ConstraintLayout>
Kemudian buat tata letak untuk menampilkan elemen di RecyclerView (tampilan_item.xml):
<androidx.cardview.widget.CardView xmlns:android=”http://schemas.android.com/apk/res/android”
android:layout_width=”cocokkan_induk”
android:layout_height=”bungkus_konten”
android:layout_margin=”8dp”
android:padding=”8dp”>
<Tampilan Teks
android:id=”@+id/itemTeks”
android:layout_width=”cocokkan_induk”
android:layout_height=”bungkus_konten”
android:teks=”Elemen”
android:ukuranteks=”16sp”/>
</androidx.cardview.widget.CardView>
Buat model dan adaptor
Untuk menampilkan data di RecyclerView, kita perlu membuat model dan adaptor. Misalnya, kita memiliki data dalam bentuk daftar nama elemen.
Model untuk elemen
Buat kelas Item yang mewakili setiap item yang akan ditampilkan:
kelas publik Item {
String nama pribadi;
publik Item(String nama) {
ini.nama = nama;
}
publik String dapatkanNama() {
nama kembali;
}
}
Adaptor RecyclerView
Buat adaptor RecyclerView untuk menampilkan data:
kelas publik ItemAdapter memperluas RecyclerView.Adapter<ItemAdapter.ItemViewHolder> {
pribadi Daftar<Item> itemList;
pribadi List<Item> filteredItemList;
publik ItemAdapter(Daftar<Item> itemList) {
ini.itemList = itemList;
ini.filteredItemList = new ArrayList<>(itemList);
}
@Mengesampingkan
publik ItemViewHolder onCreateViewHolder (ViewGroup induk, int tipeTampilan) {
Tampilan tampilan = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_view, parent, false);
kembalikan ItemViewHolder(tampilan) baru;
}
@Mengesampingkan
publik void onBindViewHolder(ItemViewHolder pemegang, int posisi) {
pemegang.itemText.setText(filteredItemList.get(posisi).getName());
}
@Mengesampingkan
publik int dapatkanJumlahItem() {
kembalikan filteredItemList.size();
}
publik void filter(String kueri) {
filteredItemList.bersih();
jika (query.isEmpty()) {
filteredItemList.tambahkanSemua(daftarItem);
} kalau tidak {
untuk (Item item : itemList) {
jika (item.getName().toLowerCase().berisi(query.toLowerCase())) {
filteredItemList.tambahkan(item);
}
}
}
beri tahuDataSetChanged();
}
kelas publik ItemViewHolder memperluas RecyclerView.ViewHolder {
itemTextView tampilan teks;
publik ItemViewHolder(Lihat itemView) {
super(tampilanitem);
itemText = itemView.findViewById(R.id.itemText);
}
}
}
Implementasi fungsi pencarian di Aktivitas Utama
Terakhir, kami menerapkan logika pencarian di MainActivity. Tambahkan SearchView untuk memproses masukan pengguna.
kelas publik MainActivity memperluas AppCompatActivity {
pribadi RecyclerView recyclerView;
pribadi ItemAdapter itemAdapter;
pribadi Daftar<Item> itemList;
@Mengesampingkan
dilindungi void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.aktivitas_utama);
recyclerView = findViewById(R.id.recyclerView);
Tampilan Pencarian tampilan pencarian = findViewById(R.id.tampilanpencarian);
// Contoh data
itemList = new ArrayList<>();
itemList.add(new Item(“Elemen 1”));
itemList.add(new Item(“Elemen 2”));
itemList.add(new Item(“Elemen 3”));
itemList.add(new Item(“Elemen 4”));
itemAdapter = new ItemAdapter(daftaritem);
recyclerView.setLayoutManager(new LinearLayoutManager(ini));
recyclerView.setAdapter(itemAdapter);
tampilan pencarian.setOnQueryTextListener(tampilan Pencarian baru.OnQueryTextListener() {
@Mengesampingkan
publik boolean onQueryTextSubmit(String kueri) {
itemAdapter.filter(kueri);
kembali salah;
}
@Mengesampingkan
publik boolean onQueryTextChange(String teksbaru) {
itemAdapter.filter(teksbaru);
kembali salah;
}
{ {{nama pengguna}}});
}
}
Jalankan aplikasinya
Setelah menyelesaikan semua langkah, Anda dapat menjalankan aplikasi. Saat pengguna memasukkan kueri di SearchView, daftar data yang ditampilkan difilter di RecyclerView.
Kesimpulan
Dengan tutorial ini Anda telah berhasil membuat fungsi pencarian sederhana di aplikasi Android menggunakan SearchView dan RecyclerView. Anda dapat lebih meningkatkan fitur ini dengan menambahkan animasi atau meningkatkan UI/UX untuk memberikan pengalaman pengguna yang lebih baik.