Android uygulama geliştirme yazı serimiz kapsamında Teknotra’nın Android uygulamasını yapmaya devam ediyoruz. Uygulamamızın sol tarafında bulunan drawer menüde seçilen elemanı 3. yazımızda yakalamıştık. Bir önceki yazımızda da yazıları WordPress API’ından almıştık. Şimdi ise WordPress liste filtreleme işlemini yapacağız.
WordPress Liste Filtreleme Mantığı
Sol tarafta bulunan kategorilerden seçili olana göre yazı listemizi oluşturacağız. WordPress API’ı bize kategori id numarasını verirsek o kategoriye ait son 10 yazıyı döndürmektedir. Biz de API’a bu şekilde request atacağız. Gelen değerleri bir önceki yazımızda oluşturduğumuz sınıflara göre parçalayacağız.
Filtreleme işlemlerinin yapıldığını anlayabilmek için her listeleme işlemi öncesi listeyi temizleyeceğim. Drawer menüsünde seçili olan elemana göre API’a request atacağım URL’i değiştirip request atıyorum. Aynı zamanda pull to refresh özellğini de bu filtrelemeye dahil ediyorum.
Yazı resimlerini Picasso kütüphanesini kullanarak internetten çekiyorduk. Bu işlemi resmi olmayan yazıları da göz önüne alarak güncelledim. Eğer resmi yok ise Teknotra’nın logosunu yazının ana resmi olarak seçiyorum ve kullanıcı arayüzünde bu resmi gösteriyorum.
Listeyi güncelledikten sonra oluşturduğumuz customAdapter nesnesini uyarıyorum. Eğer bu uyarıyı gerçekleştirmezsem uygulamanın arka tarafında değişkenler kendisini güncelleyecektir ancak kullanıcı arayüzüm yenilenmeyecektir. Bu itliği çözmek yeni başlayanların pek aklına gelebilecek bir şey değildir. Burada herkesi uyarıyorum uygulama debug modda çalışsa da arkaplan kodları yenilenmiş göreceksiniz anca arayüzünüz yenilenmeyecektir. Lütfen sinirlenip bilgisayarı kırmayın.
Uygulamanın tüm kodlarına projenin GitHub sayfasından ulaşabilirsiniz.
Çocukluğumdan beri arabalara olan ilgim babam sayesinde başlamıştır. Araba manyağı seviyesinde bir ilgim var ancak bunu her ortamda dile getirmem. Teknolojiye ve bilgisayara olan ilgim kendimi tanımaya başladım başlayalı oldu. Şimdi ise kendimce kod yazabilen bir bilgisayar mühendisi olarak çalışıyorum.