Hava Durumu Uygulaması Yapımı -2

Bir önceki Hava Durumu Uygulaması Yapımı -1 adlı yazımı okumanızı tavsiye ederim. Zira burada verilmiş olan örnekler ve anlatım işaret ettiğim yazılar üzerinden gerçekleştirilecektir.

Uygulamamızın yapımına devam edelim.

doInBackground() metodunda; verilmiş olan url stringi, jsonCevabi() metoduna gönderilmekte, bu metot da indirme işlemi sonucunda elde edilen String’i geri döndürmektedir.

jsonCevabi() metodu da döndürdüğü JSONcevabı sonucu doInBackground() metodunda jsonCevabiAl isimli String’e atanmaktadır.

  • doInBackground() metodu, sonucunu onPostExecute() metoduna gönderecektir.
  • onPostExecute() metodu içinde artık arayüzü güncelleme işlemine izin veriliyordu. Buna göre artık doInBackground() metodunun verdiği sonuç üzerinde JSON ayıklama ile istediğimiz bilgileri elde edebilir ve arayüzü güncelleyebiliriz.

jsonCevabi() metodu aşağıda görüldüğü gibidir. Bu metot daha önce Deprem Takip uygulamasında kullandığımız ile aynıdır.

Özetle hatırlatmak gerekirse; verilen bir String’den URL nesnesi oluşturuyor, bu URL’ye de URL bağlantısı oluşturuyordu. Bu bağlantıdan “GET” talebiyle bir metin dosyası indiriyor ve String olarak döndürüyordu.


Daha sonra JSON ayıklama işlemini de, doğrudan onPostExecute() içinde yapmak yerine, yine kodda sadelik açısından bir yardımcı metot içinde yapıp, bu metodu onPostExecute() içerisinden çağırabiliriz.

Bu yardımcı metodun ismi jsonAyikla() olsun. doInBackground() metodunun onPostExecute() metoduna verdiği JSON cevabını bu metoda göndereceğiz.

Peki bu metodun ayıklama sonucu döndüreceği değer nasıl olmalı? Hatırlarsak istediğimiz veri; üç bilgi (durumKodu, aciklama, sicaklik) içeriyordu. Bu üç değişkene sahip Hava isminde bir sınıf tanımlayıp, elde ettiğimiz bilgiyi bir Hava nesnesi olarak döndürebiliriz.

Hava sınıfı da JSON cevabından ayıklayacağımız verilerin tipine göre aşağıdaki gibi tanımlarız.


Önceki JSON Parse Nasıl Yapılır? adlı makalede ki açıklamalara göre jsonAyikla() metodumuzda üç bilgiye aşağıdaki gibi erişir ve bir Hava nesnesi haline getirip onPostExecute() metoduna döndürebiliriz.


Son olarak, onPostExecute() metodunda hava nesnesinin açıklama ve sıcaklık bilgilerini arayüzde gösterebiliriz. Göstereceğimiz resmi ise aşağıdaki API dokümantasyonunda açıklanan durumKodu’na(id) göre seçeriz.

https://openweathermap.org/weather-conditions

Durum kodlarına eriştikten sonra onPostExecute() metodunun içerisini doldurabiliriz.


Uygulamamızın son hali aşağıdaki gibi olacaktır.

Görsel 1

Görsel 2

Bir cevap yazın

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