Merhaba,
Bu yazımda android dünyasında verileri listelemek için kullanılan recyclerview öğesinin kullanımından bahsedeceğim. Ben yazıda hem java ile hem de kotlin ile küçük bir projede kullanımını göstereceğim.
Recyclerview android’de veri listelerini görüntülemek için kullanılan güçlü bir bileşendir.
Öncelikle recyclerview listview öğesinin yerine geldi. Recyclerview, önceki ListView’a göre birçok avantaja sahiptir. ListView, karmaşık bir yapıya sahip olduğu için özelleştirme ve performans açısından sınırlamalara sahipti. Recyclerview ise, optimize edilmiş bellek kullanımı, esnek düzen yöneticileri ve özelleştirilebilirlik gibi açılardan daha gelişmiş bir yapı sunar.
Yapacağım uygulamada ülkelerin bayrakları ve isimleri recyclerview yardımıyla sıralı bir şekilde listenelenecek. O zaman projemize geçelim.
Öncelikle proje oluşturmak için:
Android Studio → New Undertaking → New Empty Task diyerek bir proje hazırlayalım. Dil olarak hem kotlin hem de javayı seçebilirsiniz ben ikisinde de göstereceğim.
Projemizde öncelikle tasarımını oluşturmak gerekiyor. Verileri göstermek istediğimiz structure dosyasına recyclerview ekleyelim.
Daha sonra listedeki verilerin tasarımını yapmalıyız. Bunun için yeni bir structure dosyası oluşturmalıyız. Soldaki proje dizininde structure klasörünün üstüne sağ tıklayıp new>structure useful resource Report seçelim. Report title kısmına isim olarak ben card_design ismini verdim siz istediğinizi verebilirsiniz.
- Ülkelerin Fotoğrafı → ImageView
- Ülkelerin İsmi → TextView şeklinde hazırlayalım.
Tasarım kısmında yapacaklarımız bu kadardı.
Bir tane type sınıfımızı oluşturalım. Ben ismine Nation dedim.
Evet type sınıflarımızı oluşturduk. Şimdi verilerimizi oluşturmaya sıra geldi. Major activityde nation tipinde bir arraylist oluşturalım.
Verilerimizi hazırladığımıza göre sıra geldi adapterimizi yazmaya.
Öncelikle adapter yazmaya geçmeden önce proje dizinini düzenleyelim.
Adapter, recyclerviewa veri sağlar ve görünüm oluşturur. Bu işlem, veri kaynağını bağlamak ve öğeleri görüntülemek için kullanılır. Adapter sınıfımızı RecyclerView.Adapter sınıfından türetmemiz ve gerekli yöntemleri uygulamamız gerekir.
Nation adapter isminde adapter sınıfımızı oluşturalım istediğiniz ismı verebilirsiniz önemi yok.
Bu sınıfı RecyclerView.Adapter’den türetelim.
Daha sonra kullanacağımız için constructor olarak nation tipinde arraylist ve daha sonra ihtiyacımız olacak context tanımlayalım.
Daha sonra adapterimiz içinde view holder sınfımızı oluşturalım.
Adapter sınıfımız bizden view hodler sınıfı isteyecektir. Yukarıda oluşturduğumuz view holder sınıfını adapterimiz içine yazalım.
Adapter sınıfımız bu haldeyken bizden bazı metotları implemente etmemizi isteyecek. Bunlar :
- onCreateViewHolder() → Bu metot, ViewHolder’ın oluşturulduğu ve ilk kez oluşturulduğunda görünüm bileşenlerinin bağlandığı yerdir. RecyclerView, herhangi bir öğe görünümünü oluşturmak ve kullanıcı görünümüne getirmek için bu metodu çağırır.
- getItemCount() → Listemizin eleman sayısı
- onBindViewHolder() → Knowledge ve View bağlandığı kısım
Önce en kolayından başlayalım getItemCount() bu metota listemizin boyutunu yazalım.
onCreateViewHolder metodunda oluşturduğumuz tasarım sayfasını inflate ediyoruz.
Son metodumuz onBindViewHolder da ise verilerin bağlantısını gerçekleştirelim.
Evet adapter sınıfımın yazımını tamamladık.
Son hali bu şekilde:
Şimdi son olarak adapter ve recyclerview bağlantısını yapmalıyız. Recyclerview öğemizin bulunduğu sınıfta yapmalıyız. Bende major.task de bulunuyor.
Şimdi projemizi çalıştırıp check edelim. Ve sonucu görelim.
Evet proje güzel bir şekilde çalışıyor. Umarım faydalandığınız bir yazı olmuştur. Herhangi bir durumda bana ulaşabileceğiniz adresleri ve projelerin kaynak kodlarının linkini bırakıyorum.
Github:
https://github.com/tolgabudanoglu/MediumYazilariProjeleri/tree/major/MediumRecyclerViewKullanimi
Linkedin:
https://www.linkedin.com/in/tolga-budanop.cC4p.c9Flu/