Android

Android – Activity Sınıfı

Bir önceki yazımda, android projesinde yer alan dosya ve klasörleri tanıtmıştım. Şimdi ise Activity sınıfını sizlere tanıtacağım.

[alert]Bu sınıf sürekli kullandığımız ve aktivitelerimizin temelini oluşturan bir sınıf olduğu için bu sınıfın iyi anlaşılmasında fayda var.[/alert]

Uygulamanızı kodlamaya başladığınızda ilk olarak bir ekran oluşturmak isteyeceksiniz. Activity sınıfları da oluşturmak istediğiniz ekranlara karşılık gelen sınıflardır. Aktivitelerin çalışabilmesi için öncelikle Andorid Manifest dosyası içerisinde bu sınıfları tanımlamanız gerekmektedir. Bu işlemi aşağıdaki gibi gerçekleştiriyoruz;

Yukarıda tanımlanan MainActivity isimli sınıf, LAUNCHER olarak tanımlandığı için uygulama ilk açıldığında karşınıza bu sınıf çıkacaktır. Gördüğünüz gibi intent-filter tagı içerisinde yer alan kısım bu işlemi gerçekeştirmek için yazılmıştır. Bu kısmı diğer sınıflar için tanımlamamalısınız.

[alert color:red]Eğer aktivitenizi Android Manifest içerisinde tanımlamazsanız uygulamanız hata verecektir. Bu sebeple bu kısma dikkat etmeniz önerilir.[/alert]

Aktiviteleriniz için bir diğer yapmanız gereken işlem de layout klasörü içerisine tasarım dosyaları oluşturmaktır. Bu konuyu detaylı olarak bir sonraki yazımda ele alacağım.

Activity sınıfını daha iyi anlamak için bu sınıfın yaşam döngüsüne bakmamız yerinde olacaktır. Bu sınıfın yaşam döngüsü aşağıdaki gibidir;

Activity LifeCycle

Gördüğünüz gibi aktivite başlatıldığında ilk çalısan metod onCreate (Bundle) metodudur. Bu metod içerisinde ilk olarak setContentView() metodunu kullanarak sınıfınızın tasarımını belirtmeniz gerekmektedir. Tasarımlarda hazırlamış olduğunuz kaynakları(textview, label, button vs.) kullanmak için R.java sınıfı içerisinde oluşturulan id’leri kullanmanız gerekiyor. Kaynaklara erişim yapabilmek için bu id’leri findViewById() metoduna parametre olarak vermeniz gerekmektedir. Ayrıca kaynaklara kazandırmak istediğiniz işlevsellikleri de bu kısımda tanımlamalısınız Örneğin, bir butona tıkladığınızda arkaplan renginin değişmesini istiyorsanız, bu işlemi onCreate metodu içerisinde gerçekleştirmelisiniz. Örnek olarak aşağıdaki kodu inceleyebilirsiniz.

Yaşam dögüsündeki metodlar şu sekildedir;

  • onCreate : Yukarıda bahsettiğimiz gibi aktivite başlatıldığında çağrılan metoddur.
  • onStart : onCreate metodu çalışıp tasarım ekranda gözüktükten sonra çalışır.
  • onResume : Aktivite çalışır hale gelmeden önceki son metoddur. Eğer aktivite pasif hale getirilmişse tekrar aktif hale geldiğinde bu metod çağrılır ve sonrasında aktivite çalışır.
  • onPause : Aktivite arkaplana atılacağında bu metod çağrılır. Bu metod çalıştırıdıktan sonra diğer aktivitelere geçiş olur.
  • onStop : Aktivite arkaplana atıldığında çalışan bir diğer metoddur. Yukarıda da görüldüğü gibi burada iki durum söz konusudur. Birincisi, kullanıcının tekrar bu aktiviteye dönmesidir. Bu durumda onRestart metodu çalışır ve onStart metodundan itibaren aktivite tekrar çalışır. İkinci durum, kullanıcının aktiviteye tekar dönmemesidir. Bu durumda ise onDestroy metodu çağırılır.
  • onDestroy : Aktivite sonlandırılır ve aktiviteye ait bütün kaynaklar RAM’den kaldırılır. Böylece yaşam döngüsü tamamlanmış olur.

Yukarıda da belirttiğim gibi bu metodları anlamak, uygulamalarınızı en doğru şekilde hazırlayabilmeniz için önemli bir unsur.

Bu yazımda Activity sınıfını ve yaşam döngüsünü anlattım. Umarım faydalı olmuştur. Bir sonraki yazımda layout kavramını ve bir ekranı nasıl tasarlayabileceğinizi anlatacağım.

Yıldız Teknik Üniversitesi Bilgisayar Mühendisliği mezunudur. Java dilinin temellerine hâkimdir. iGones’da Mobil Uygulama Geliştirici olarak çalışmaktadır. Genellikle Android uygulamaları geliştiren ve bu alanda çalışırken başkalarına da yardımcı olmayı görev edinen bir YAZARdır.
  • Pingback: Android: Ekran Tasarımı Android: Ekran Tasarımı()

  • Pingback: Android – Ekran Tasarımı | kod5()

  • Pingback: Android – TextView ve EditText Kullanımı()

  • Zubiri Gadro

    Merhaba hocam;

    Activity konusu; Bundle, Intent, Fragment konularıyla grift bir ilişki içinde.
    Rica etsem, bu konularda da bizi aydınlatır mısınız?

    Çalışmalarınızda kolaylıklar dilerim.

  • tahsin bozyel

    merhaba hocam bir soru olacakti diyelim bir listwiew kulandim bunun alt kategororileri icin her bir katagori icin farkli bir activity mi acmam gerekiyor yoksa tek bir activitide yapma şansim varmi varsa internete nasil bir arastirma yapabilirim saolun?