İlk Android Uygulaması (Kaynak Kod İnceleme)


İlk Android Uygulaması başlıklı  yazımızda yeni bir Android projesi yaratarak, uygulama için konfigürasyon oluşturmuş ve nasıl çalıştırılıp/debug edileceğini incelemiştik. Bu yazımızda ise kaynak kodu ve bileşenleri incelemeye çalışacağız. İlk olarak Aktivite sınıfını anlamaya çalışarak başlayalım. Aktiviteler aracılığı ile kullanıcılara bilgiler/ekranlar gösterilir ve kullanıcı tepkilerine cevap üretilir. Aktivite temel olarak kaynak kodundan (.java dosyası) ve ara yüz tasarımından (.xml dosyası) oluşur. İlk olarak Tablo 1’deki kaynak kodunu inceleyelim. Oluşturduğumuz MainActivity sınıfı, temel Activity sınıfını extend etmiş ve OnCreate metodunu ezmiştir. Aktivite yaratılması esnasında aynı zamanda çağrılmaktadır.

on_create

Tablo 1.MainActivity.java kaynak kodu

Android uygulamalarında ara yüz tasarımları View ve ViewGroup kontrolleri ile oluşturulurlar. View’lar button, text field, checkbox gibi kontrolleri ifade ederken, ViewGroup’lar ise bu kontrolleri taşıyan görünmez kontrollerdir (inivisible containers). Bir ViewGroup başka bir ViewGroup’u hiyerarşik olarak barındırabilir (Resim 1).

viewgroup

Resim 1. ViewGroup kontrollerinin hiyerarşik gösterimi

 Eclipse ortamında proje kaynakları hiyerarşik olarak drawable, layout ve values klasörlerini içeren res klasöründe yer almaktadırlar. View ve ViewGroup’larını barındıran ara yüz tasarımları da res/layout dizini altında XML dosya formatında bulunmaktadır. Tablo 2’de oluşturduğumuz varsayılan ara yüzün XML kaynak kodu yer almaktadır. Kullanıcı ara yüzünü XML olarak tanımlamak uygulama katmanı ile kullanıcı ara birimi katmanını birbirinden ayırmanıza yardımcı olur.

layout

Tablo 2.activity_main.xml kaynak kodu

Tablo 1’de görüleceği üzere uygulamamız bir tane ViewGroup ve onun içerisinde bir tane View kontrolünden oluşmaktadır. Tüm kontrollerin XML dosyasında yer alan çeşitli özellikleri (attributes) bulunmaktadır.  TextView kontrolümüzün özellikleri aşağıdaki gibidir;

android:id Kod içerisinden kontrollere ulaşmak ve onlar işlem yapmak için kullanılan özelliktir. @ işareti XML içerisindeki herhangi bir kaynağa ulaşmak için kullanılır. Sonrasında kaynak türünün adı olan id gelir. Son olarak da kontrolün benzeşiz ismi textView1 gelmektedir. Uygulama ilk defa derlendiğinde projenin gen klasörü altındaki R.java dosyasındaki R sınıfının id alt sınıfında textView1 isimli değişken yaratılmış olur.
android:layout_widthandroid:layout_height Kontrolün genişlik ve yükseklik değerini barındıran özelliktir. wrap_content değeri kontrolün ara yüz içeriğinin gerektirdiği kadar yer kaplayacağını belirtmektedir.
android:text Kontrolün içeriğine yazılarak kullanıcıya gösterilecek yazıdır. string/hello_world değeri res/values klasörü altındaki strings.xml dosyasındaki hello_world değişkenin değerinin alınacağı anlamına gelmektedir. Tablo 3’de strings.xml dosyasının kaynak kodu görülmektedir.
strings

Tablo 3.strings.xml kaynak kodu

Uygulamayı biraz daha geliştirerek kod içerisinden textView1 kontrolüne erişip mevcut metin değeri olan yani üzerinde yazan “Hello World!” değerini “Metin değişti!” olarak nasıl değiştireceğimize bakalım.  Öncelikle Tablo 4’de de görülen overrideTextAttribute isimli bir metot yazalım. Metot içerisinde findViewById fonksiyonu kullanılarak textView1 kontrolüne erişilmiş ve kontrolün referansı objMyView nesnesine atanmıştır. Kontrolün setText fonksiyonu kullanılarak metin değeri değiştirilmiştir. Son olarak yazdığımız overrideTextAttribute metodu Aktivitenin onCreate metodundan çağrılarak kodlamamız tamamlanmış olur.

main_degisti

Tablo 4.Değiştirilmiş MainActivity.java kaynak kodu

Hello World uygulaması tekrar çalıştırıldığında emülatörde ana aktivite artık Resim 2’deki gibi görülecektir.

degistirilmis_kod

Resim 2. ViewGroup kontrollerinin hiyerarşik gösterimi

Deniz KILINÇ

Advertisements

One Response to İlk Android Uygulaması (Kaynak Kod İnceleme)

  1. Pingback: İlk Android Uygulaması | Dr. Deniz KILINÇ Blog Sitesi

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: