UI/UX

Android RecyclerView’a Search Filter Ekleme

Yazdığınız uygulamanın kullanıcı sayısının artmasını sağlayan en önemli konulardan biri kullanıcı deneyimi yüksek ve dikkat çekici tasarıma sahip olmasıdır.

Bu makale  Android uygulamalarda RecyclerView’a arama filtresini ekleyerek kullanıcıların hızlıca veriye ulaşabilmesini sağlayan örneği içermektedir.

Örnek projemizin görünümü:

Arama arayüz elementi olarak SearchView kullanacağız. RecyclerView yapısına da arama filtresini ekleyerek verilerimizi listeleyeceğiz.

RecyclerView kütüphanesini projeye ekleme

Projenizin ana dizinindeki build.gradle dosyasını açmalısınız. dependencies blogları arasına aşağıdaki kodu ekleyerek RecyclerView kütüphanesini yükleyelim.

RecyclerView’e Arama Filtresi Ekleme

Android’de bir koşula göre verileri filtrelemek için Filterable adındaki sınıf kullanılır. Oluşturacağımız RecyclerView_Adapter sınıfında Filterable ve RecyclerView yapılarından kalıtım alacağız. Filterable sınıfında bulunan getFilter() metodu filtreleme işini yapan ana kod bölümüdür. RecyclerView_Adapter sınıfının kodlarında daha detaylı açıklamaları inceleyebilirsiniz.

Listelenecek ülke isimlerinin arayüz elemanına aktarılması için TextView içeren recyclerview_row adında xml oluşturduk. Bu xml ile RecyclerView_Adapter sınıfı birlikte çalışmaktadır.

SearchView Özelleştirme ve Ülke Bilgilerini Oluşturup Filtreleme

SearchView arayüz elementini görsel olarak zenginleştirmek istiyorum. Bunun için SearchView arayüz elementinde içerisinde bulunan search_mag_icon (arama ikonu idsi), search_close_btn (çarpı şeklinde kapatma idsi) ve search_src_text id bilgilerinden faydalanarak  arama ile ilgili ikonlara renkler atadım.

Aranacak kelime yazılırken karakter değişikliklerini dinleyen setOnQueryTextListener adında metod bulunmaktadır. Bu metod SearchView arayüz elementinin içinde barınır.

Son olarak Java’nın Locale sınıfından faydalanarak ülke isim ve bayrak bilgilerini getiren metodu yazdım. Metod sonunda da bütün ülke bilgilerini ArrayList yapısıyla RecyclerView_Adapter sınıfına aktardım.

MainActivity sınıfında kullandığımız SearchView ve RecyclerView arayüz elementlerinin eklendiği xml kodlarımız:

Böylelikle RecyclerView’a arama filtresini ekleyerek kullanımını örnekledim.

Listelenen ülke isimlerine tıkladığınızda başka bir sayfada seçilen ülke ismi ve bayrağını göstermek isterseniz projedeki DetailsActivity adında sınıfı inceleyebilirsiniz. Yalnız RecyclerView_Adapter sınıfında 42-46 satırlar arasındaki kodları da eklemeniz gerekir:)

Tüm proje kodlarına github linkinden ulaşabilirsiniz.

Bülten
Bültene abone ol

Bültene abone olarak yeni makalelerimden haberdar olun.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir