Android Dersleri 3 : Yeni Sayfa Oluşturma ve Buton, EditText, TextView Kavramları 31 Ocak 2013 Android 46 Yorum Merhaba arkadaşlar. Bu derste ilk olarak uygulamamıza yeni bir sayfa eklemeyi ve daha sonra da bu sayfalara buton, edittext gibi araçları eklemeyi anlatacağım. Bir önceki derste, bir sayfanın hem xml tarafının hem de kontrollerin yapıldığı kısmının olduğunu söylemiştik. Uygulamamıza yeni bir sayfa eklediğimizde bu sayfa için bir java sınıfı da oluşturmamız gerekiyordu. Şimdi bir sayfa ekleyelim. Bunun için layout klasörüne sağ tıklayıp New-Other-Android-Android XML File seçeneğine tıklıyoruz. Bu kısmı aşağıda görebilirsiniz. Next dedikten sonra sayfamıza isim vermemiz gerekiyor. Tipimizi layout olarak ayarlıyoruz ve isim verdikten sonra Finish diyerek kapatıyoruz. Bu işlemi yaptıktan sonra layout klasörünün altında digersayfa.xml adında bir dosya daha eklendiğini göreceksiniz. Bu işlemi yaptıktan sonra şimdi de bu sayfanın kontrollerinin yapılacağı java dosyasını oluşturmamız gerekiyor. Bunun için de src altında paket ismine sağ tıkladıktan sonra New-Class dememiz gerekiyor. Sınıfımıza bir isim veriyoruz ve Finish diyerek sınıfı da ekliyoruz. Bu işlemleri de yaptıktan sonra Project Explorer kısmında son görüntümüz aşağıdaki gibi olacaktır. Şimdi digersayfa.xml dosyasına çift tıkladığımızda boş bir android ekranı göreceğiz. Oraya şimdilik dokunmuyoruz. Şimdi yapmamız gereken DigerActivity.java dosyasını, digersayfa.xml dosyasına bağlamak. Bunun için DigerActivity.java dosyasına çift tıklıyoruz ve karşımıza aşağıdaki gibi bir alan gelecektir. Biz bu kısmı aşağıdaki gibi değiştiriyoruz. Çünkü bu sınıfta herhangi bir işlem yapılmamış. Normal bir Java sınıfı görüyoruz. Bu sınıfı Activity sınıfından extends etmemiz gerekiyor. Ayrıca bu sınıfa onCreate() metodunu ve setContentView metodunu eklememiz gerekiyor. Bunun için de yukarıdaki menüden Source-Override/Implements Methods… seçeneğine tıklıyoruz. Karşımıza aşağıdaki gibi bir ekran gelecektir. Buradan onCreate() metodunu seçiyoruz ve projemize ekliyoruz. Bu metodu da ekledikten sonra kodumuzun son hali aşağıdaki gibi olacaktır. Burada eksik bir şey var. O da setContentView metodu. Bu metod ile sınıfımızı, sayfamızın olduğu xmldosyasına bağlayacağız. Bunun için super.onCreate() metodunun hemen altına şu metodu da ekliyoruz. setContentView(R.layout.digersayfa); Bu işlemleri yaptıktan sonra ctrl+s ile kaydedelim. Kaydedilmemiş bir sayfamız kalmasın. Son olarak bir de AndroidManifest.xml dosyasında bu sayfayı eklememiz gerekiyor. Bunun için projemizdeki bu dosyayı açalım ve kodumuzu aşağıdaki gibi düzenleyelim. AndroidManifest.xml dosyasını da bu şekilde ayarladık. Eklenen her sayfa için bu dosyaya da ekleme yapılmalıdır. Uygulamamız ilk açıldığında activity_main.xml sayfası açılacaktır. Çünkü bunu LAUNCHERolarak ayarladık AndroidManifest.xml dosyasında. Fakat bir biraz önce oluşturduğumuz sayfanın da bir şekilde açılıp açılmadığını kontrol etmek istiyoruz. Bunun için anasayfamıza bir buton koyalım ve tıklandığında biraz önce oluşturduğumuz digersayfa.xml sayfasına gitsin. Ama önce bu sayfanın açıldığını anlamak için activity_main.xml sayfamıza birkaç araç koyalım. Diğer sayfamız ise boş kalsın. Bunun için yeni bir konu anlatmamız gerekiyor. Buton, EditView ve TextView Kavramları Oluşturduğumuz diğer sayfaya araç eklemeyeceğiz. Anasayfamıza araçlar ekleyeceğiz ve diğer sayfaya geçişte boş olan sayfa açılacak. Bunlardan ilk olarak temel olan araçlardan başlayalım. Textview ,bildiğiniz label‘dir ve yazı göstermeye yarar. Edittext ise bildiğiniz textbox‘tır ve bir yazı girişi yapmayı sağlar. Şimdi activity_main.xml dosyasına çift tıklayalım ve soldaki panelde bir textview, edittext ve butonekleyelim. Bunları ekledikten sonra sayfanın alt tarafında xml kısmına geçtiğinizde, sayfanızın xml kodunu görebilirsiniz. Biz sadece buton için ayarları anlatalım. Bu ayarları xml tarafında değil de görsel kısımda, butonun üzerine tıkladıktan sonra sağdaki propertieskısmından da değiştirebilirsiniz. Bu kısımda daha çok ayar bulunmaktadır. Sayfaya bu 3 aracı ekledikten sonra şunu yapalım. Butona tıklayınca edittext içerisine yazdığımızı textviewiçerisinde göstersin. Bunları yaptıktan sonra, bir başka butona tıklandığında ise diğer sayfaya geçmesini ve diğer sayfada hiçbir şey olmadığı için boş bir sayfa açılmasını yapacağız. Şimdi MainActivity.java dosyasına çift tıklayalım ve kodlarımızı yazalım. Şimdi buradaki numaralandırılmış alanları anlatalım. 1 => TextView sınıfından bir goster adında nesne oluşturduk. Textview ile işlemlerimizi bu nesne üzerinden yapacağız. findViewById ile de textview aracını id’si ile buluyoruz. Burada bizim textview id’si, xml kısmındakinin aynısıdır(R.id.textView1). Bu alanı final yani sabit olarak tanımlamak zorundayız. 2 => Edittext sınıfından al adında bir nesne oluşturduk. Bu nesne ile kutucuğa girilen değerleri alacağız. Bunu da final olarak tanımladık. Bu araçları eklediğimizde yukarıda otomatik olarak bunları importedecektir. Bu da id’sine göre arandı ve eşleştirildi. 3 => Burada da bir buton oluşturduk. Anlattıklarımız bunun için de geçerlidir. Her birinde bir nesne oluşturuyoruz ki işlemlerimizi bu nesne üzerinden yapalım. 4 => Butona yani b nesnesine tıklandığında bir listener çalışacaktır. Listener, java ile masaüstü uygulama geliştirenler için yabancı gelmeyecektir. C#’taki click olayına benzetebiliriz fakat biraz farklıdır. Önce olay dinlenir daha sonra yapılan olaya göre işlem yapılır. 5 => Bu dinleme olayı sonucunda bir tıklama olduysa bu metod çalışır. onClick() metodu, butona tıklanmayı gösterir ve tıklandığında yapılacak işlemler bu metod içerisine yazılır. 6 => goster nesnesinin setText metodu çalıştırılır. Yani TextView içerisinde bir şey yazdırılarak. Bu yazdırılacak olan da edittext içerisindeki verilerdir. Bu verileri de al nesnesi üzerinden getText() metodunu çağırarak alıyoruz. 7 => Burada noktalı virgül koymayı unutmuyoruz. Şimdi projemizi çalıştıralım. Bunun için proje ismine tıklıyoruz ve yeşil butona tıklıyoruz. Gelen ekrandanAndroid Application diyoruz ve emülatörümüzün açılmasını bekliyoruz. Açıldıktan sonra uygulamamızın ismini seçerek başlatıyoruz. Aşağıda ekran görüntülerini gösterelim. Butona tıkladığımızda, edittext içerisine yazdığımızı textview üzerinde gösteriyor. Şimdi emülatörü kapatmadan uygulamamıza geri dönelim. Eğer emülatörü kapatırsak, uygulamayı çalıştırdığımızda yine uzun süre beklememiz gerekir. Eğer kapatmazsak uygulamayı çalıştırdığımızda emülatör kendini yeniler ve kısa sürede açılır. Uygulamamızda activity_main.xml dosyasına çift tıklayıp bir buton daha ekleyelim ve butona tıkladığımızda diğer sayfaya geçsin. Butonu ekledikten sonra MainActivity.java dosyasına çift tıklayalım ve butonun tıklanma olayını yazalım. Kodumuz aşağıdaki gibi olacaktır. Eklediğimiz kısım sadece b2 nesnesi için listener olayıdır. Burada click işlemi yapıldığında startActivity ile yeni bir aktivite başlatıldığını gösteriyoruz. Yeni bir intent nesnesi oluşturduktan sonra parametre olarak, geçiş yapacağımız sayfanın paket adını veriyoruz. Paket adına, AndroidManifest.xml dosyasından ulaşabilirsiniz. Bunu da önce sayfamızı oluşturduğumuz zaman belirlemiştik. Şimdi projemizi tekrar çalıştıralım ve aşağıdaki gibi çıktıları inceleyelim. Sol tarafta tıklamadan önceki hali; sağ tarafta ise butona tıkladıktan sonraki hali gösterilmiştir. Butona tıkladıktan sonra diğer sayfaya geçiş yapıyor. Diğer sayfada ise şuan hiçbir araç yok. Biz bütün araçları, konumuzun başından beri anasayfamıza yani activity_main.xml dosyasına ekliyoruz. Bu derste en temel 3 aracı inceledik ve yeni sayfa oluşturmayı, bu sayfaya geçiş yapmayı anlattık. Android Programlama – Layout Türleri ve Kullanımları Bu yazımızda uygulamalarımızın görsel arayüzlerini oluştururken sık sık karşılaşacağımız değişik layout türlerinden önemli 3 tanesini göreceğiz. Layout dosyaları uygulamamızdaki etkinliklerin tasarımını oluşturan dosyalardır. Xml türünde olan bu dosyayı kullanarak etkinliklerimizin nasıl görüntüleneceğine karar verilir. Xml dosyasını elle düzenlemenin yanında bu dosyayı görsel bir şekilde düzenleme imkanına da sahibiz. LayoutOgren isimli bir proje oluşturarak işe başlıyoruz. Linear Layout İlk olarak Linear Layout türünden bahsetmek istiyorum. Biz yeni bir proje oluştururken Eclipse bizim yerimize bir etkinlik oluşturuyor ve bunun içine varsayılan olarak bir linear layout yerleştiriyor. Eclipse sürümüzüne göre bu değişkenlik gösterebilir. Buna dikkat ediniz. Linear Layout nedir? İsminden de anlaşılacağı gibi içerisine eklenecek nesneleri çizgisel (linear) bir şekilde eklemeye yarar. Aşağıdaki ekran görüntüsünde de görüldüğü gibi eklediğimiz TextView nesneleri sırayla alt alta ekleniyorlar. Xml görünüşüne geçerek oluşturulan kodları görebilirsiniz. Linear layout kullanarak isterseniz eklediğiniz nesneleri alt alta yerine yan yana da yerleştirebilirsiniz. Bunun için yapmanız gereken orientation özelliğini değiştirmektir. Yazarken Ctrl + Space tuşlarına basarsanız Eclipse’in bize yardımcı olur. Tekrar görsel tasarım sekmesine geçtiğinizde eklediğiniz nesnelerin alt alta değil de yan yana eklendiğini görebilirsiniz. Relative Layout İsminden de anlaşılacağı gibi bu türden layout içerisine eklediğiniz nesneleri istediğiniz bir alana istenilen bir biçimde konumlandırabilirsiniz. Xml görünümündeki kodları yukarıdaki ekran görüntüsünde görüldüğü hale getiriyoruz. Artık etkinliğimizde linear değil relative layout var. Görsel tasarım kısmına geçip bir düğme ekleyelim. Ekleme işlemi sırasında farenizi ekranın değişik noktalarına hareket ettirince hizalama bilgileri görünecektir. Bu şekilde relative layout kullanarak hem yatayda hem de dikeyde kenarlara ve ortalara hizalı şekilde nesneler ekleyebilirsiniz. Uygulamanın son halinin xml’i aşağıdaki ekran görüntüsündekine benzer bir şey olmalı. Table Layout Bu tür ile ekleyeceğiniz nesneleri bir tabloya yerleştirebilirsiniz. İlk önce relative layout kısmında yaptığımız gibi xml dosyasının içeriğini değiştiriyoruz. Aşağıdaki görüntüdeki kodlarla etkinliğin layout’unu table layout olarak belirliyoruz. Table layout içine satır eklemek için layout’umuza sol taraftki nesnelerden Layoutskısmından TableRow nesnesini ekliyoruz. İki satır ekledikten sonra bu satırlar içine TextView nesneleri ekleyelim. Gördüğünüz gibi satırlar içine eklenen nesneler yeni bir sütuna yerleştiriliyor. İlk satıra 2 tane, ikinci satıra da 3 tane TextView nesnesi ekledim örnek olarak. Xml tarafında da gördüğünüz gibi en dışta bir table layout, onun içinde bir table row, onun da içinde eklediğimiz TextView nesneleri var. Bu derslik bu kadar. Bir sonraki derste görüşmek üzere. Bir yorum yapın Android (APK) Kodlarını Görmek Mart 25, 2013Android Programlamaaçık kaynağa erişme, açık kaynak, android, android kodlara erişme, android kodları, android uygulama kodlarını görmek, apk kodlarını görme, apk'dan kodları görme inShare3 Android geliştiricilerin ve meraklı arkadaşların görmek istediği bir durumdur “APK” dosyalarının kaynak kodlarını görmek. Bildiğiniz gibi Android Özgür Yazılım diye nitelendirilen istediğiniz gibi gelişim sağlayabildiğiniz bir sistemdir. Sizlere şimdi Android APK dosyalarının Kaynak kodlarını nasıl görebileceğinizi anlatacağım: Gerekli olan programlar: DEX2JAR : http://code.google.com/p/dex2jar/downloads/list jdgui.exe : https://dl.dropbox.com/u/91714459/Android%20Programlama/APK%20Source%20 Code/jd-gui.exe Belirttiğim 2 programı indirdikten sonra kodlamasını görmek istediğiniz bir APK dosyası seçin ve sırasıyla işlemlere devam edin. – APK Dosyasını bilgisayarınıza indirin ve ornek.apk isimli dosyanızın sonuna “.zip” ekleyerek Winrar haline dönüştürün. – Zip haline dönüştürdüğünüz APK dosyasına sağ tıklayarak Dosyaları çıkart komutunu uygulayın. – Çıkarttığınız “Ornek.Apk” klasörünün içindeki Classes.dex dosyasını daha önceden indirmiş olduğunuz “dex2jar” klasörünün içine atın. – Şimdi Başlat – Çalıştır – CMD komut dizinini açın. – “cd” komutu ile “dex2jar” klasörüne gidin ve klasör içine girdikten sonra şu komutu uygulayın: “dex2jar classes.dex” (Tırnaklar olmayacak) – Bu komuttan sonra “classes_dex2jar.jar” diye bir dosya oluşacaktır. – Oluşturulan dosya dex2jar klasörünün içindedir – Classes_dex2jar.jar dosyasını ilk başta indirdiğimiz “Jd-Gui.exe” programı ile indirip Kodlara ulaşabilirsiniz. Kaynak kodlar “Penetration Test” yapan arkadaşlar veya Uygulama geliştirmek isteyen arkadaşlara bir öncülük etmiş olacaktır. Bir yorum yapın Android Programlama – Butona Tıkla, Sonuç Al; Mart 15, 2013Android Programlamaandroid buton işlevi, android dersleri, android programlama, butona tıkla, butona tıkla sonuç al inShare1 Butona Tıkla, Sonuç Al; Yapmak istediğimiz şey; Buton ekleyeceğiz,butona tıklayacağız ve ekrana bir şeyler yazdıracağız. Aşağıdaki gibi bir main sınıfı ve main xlm üzerinden düzenlemeler yaparak gideceğiz. Her bir hatanın anlamı vardır. Eclipse ide’si bize bu konuda yardımcı oluyor. Hataların üzerine tıkladığımızda ne gibi çözümler olduğunu bize sıralıyor. Layout’a Buton Ekleme Projemizi açtıktan sonra sırasıyla res>>>layout>>>activity_main.xml dosyalarını açıyoruz. Graphical Layout menüsü seçili bir şekilde önümüze geliyor. Form Widgets’i açıp oradan Button’u sürükleyip yandaki beyaz bölgeye bırakıyoruz. Palette’in sağ tarafındaki aşağı bakan oka tıklayıp “Show icon and text”‘i seçerseniz resimdeki gibi bir palette görünümü elde edersiniz. Button ve TextView main.xml Ayarları Graphical Layout’un yanındaki activiy_main.xml’e tıklayıp ayarları aşağıdaki gibi yapınız: TextView zaten kendisi hazır geldiği için,ona sadece bir id eklemeniz gerekir. Ya da hazır geleni silip, graphical layout’tan bir tane textView sürükleyebilirsiniz,bu textView1 id’si ile beraber gelir. id olayı bu kullanacağımız widgetlerin kimlik numarası gibi bir şey.Bunların üzerine programlama işlemlerini bu id’ler ile gerçekleştireceğiz. # layout_width, widget’ın genişliği ve layout_height’ta widget’ın boyunu belirtir. fill_parent>>>ekranı doldurur. wrap_content>>>içerik kadar doldurur. Son olarak android:text ile bu widget’lara isim veririz.Ekranda hangi ad ile görünmesini istiyorsak, o adı veriyoruz. Stringlerle ilgili sıkıntı olmaması için res>>>values>>>strings.xml ayarlamalarını yapmamız gerekir. Java ile aktiviteyi programlama Şimdi MainActivity.java’yı tekrar açıp kodlamaya başlayalım.Aşağıdaki resimde olduğu gibi Button ve TextView tipinde objeler oluşturalım.Hatamızı Ctrl+Shift+O’ya basıp,gerekli Button ve TextView sınıflarını kodumuza davet(import) ederek düzeltebiliriz. Şimdi de onCreate metodu içinde Button ve TextView’lerimizi layout’tan aldığımız id’ler ile yaratalım. Butonu İşlev Kazandırma Buton objemiz için setOnClickListener metodunu çağırıp,içinde de parametre olarak onClick metodunu yaratıp içini butonun yapmasını istediğimiz işlemle dolduracağız. setOnClickListener’ı yazdıktan sonra parantezleri açıp içine new yazın ve ondan sonra Ctrl+Space’ e basıp gelen pencerede viewOnClickListener() ‘ı seçin. setOnClickListener’ın noktalı virgülü gelmediyse ekleyiveriyoruz.Daha sonra Ctrl+Shift+O yapıp gerekli android.view.View.OnClickListener’ı import ediyoruz. Butona Tıklandığında Yapması Gereken İşlev Butona tıklanıldığında bize ekranda yeni bir yazı göstermesini istediğimiz için onClick metodu içine textView1 objemiz için setText() metodunu çağırıp ekranda gösterilmesini istediğimiz yazıyı parametre olarak yazıyoruz.Bu yazıyı string>>>value olarakta yapabiliriz ki bu en doğru olanı ama yine de çeşitli gösterim şekillerini görmemiz için bu seferlik böyle yazdım. Tamamdır. Artık butonumuz ona tıklanıldığında ne yapacağını biliyor. Tıklamadan Önceki Görünüm Tıkladıktan Sonraki Görünüm Ders 13: Android Strings.xml Kullanımı GÖNDEREN 3K ZAMAN: 21:02 29 OCAK 2012 PAZAR Şimdiye kadar yaptığımız bütün projelerde, main.xml içerisindeki belirtimlerde,android:text değerini elimizle şipşak yazıverdik. Android:text=”3k” gibi. Ancak genel kullanım böyle değil. Farz edin ki birçok yerde 3k yazıyor ve bir değişiklik yapıp 3k değerlerini değiştirmeniz, başka bir String yapmanız gerekiyor. Oturup, tek tek 3k yazan yerleri değiştirebilirsiniz. Ama düşünün o kadar çok varki… İşte bunun için, Android bize bir kısayol sunuyor, kolaylık sağlıyor:Strings.xml! Bu dosya res>values> içerisinde kullanıyoruz? bulunuyor. Şimdi bakalım nasıl İçini ilk açtığımızda bu şekilde gözüküyor: <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World,StringsOrnegiActivity!</string> <string name="app_name">StringsOrnegi</string> </resources> Buradan da anlaşabileceği üzere, <string name=””></string> yapısını kullanıyoruz. Burada name kısmına verdiğimiz değeri değişkenimiz gibi düşünebilirsiniz.<string></string> tagı arasında yazan ise o değişkene karşılık gelen ifade. Yani biz bir başka dosyada ( genelde tasarımı yaptığımız xml dosyasında) bu değişken adını kullandığımızda aslında ona karşılık gelen ifadeyi belirtmiş gibi oluyoruz. Burası biraz karışık gelmiş olabilir, onun için hemen bir örnekle gösterelim: Strings.xml içerisine gelelim ve şu kodu yazalım: <String name="buton">Ben bir butonum</String> Main.xml içerisine gelelim ve şu kodu yazalım: <Button android:id="@+id/button" android:text="@string/buton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> Burada her zamanki gibi id, boyut ve yer ataması yaptık. Ama bunlardan farklı olaraktext değerini eskiden yaptığımız gibi belirlemedik. Android:text=”@string/buton” ifadesinde demek istiyoruz ki; name’i buton olanstringi bul ve text değerine onu ata.Yani aslında text değerini “Ben bir butonum” olarak ata. Görüntüye bakacak olursak da şöyle görüyoruz: Strings.xml i sadece string değişkenleri için kullanmıyoruz. Renk verme işlemini de bunun aracılığı ile gerçekleştirebiliyoruz: Strings.xml içerisine şu kodu yazıyoruz: <color name="arkaplan">#4DBDF0</color> Main.xml içine gelip LinearLayout özelliğimize color’ı ekliyoruz.Böylece arkaplanımız da istediğimiz renk olacak. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@color/arkaplan"> Burada @string yerine @color yazdığımıza dikkat çalıştırdığımızda ise şöyle bir görüntü elde ediyoruz: Ders 8: Android LinearLayout Uygulaması 2 GÖNDEREN 3K ZAMAN: 13:05 27 OCAK 2012 CUMA edin. Uygulamayı LinearLayout’un iyice anlaşılması için yaptığımız bir örnek daha. Bu uygulamada, birLinearLayout containerımız ve EditText,TextView ile Button componentlerimiz olacak.Amacımız EditText’e kullanıcının girdiği veriyi,butona basıldığı anda TextView üzerinde göstermek. Main.xml içerisine geliyoruz ve gene öncelikli olarak containerımızı oluşturuyoruz: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> Ekranı tamamen kaplayan bir LinearLayout oluşturduk.”Orientation”değerinin “vertical” olması container içine koyacağımız componentler alt alta dizilecek. EditText’imizi oluşturuyoruz: <EditText android:id="@+id/yazigirisi" android:layout_height="wrap_content" android:layout_width=”fill_parent" /> containerı sebebiyle, Daha sonra bu edittexte, java dökümanı içerisinden ulaşabilmek amacıyla, ID ataması yaptık. Edittext’in genişliği ekranı kaplayacak kadar, boyu ise içeriği kadar olacak şekilde ayarlandı. TextView’imizi oluşturuyoruz: <TextView android:id="@+id/goruntule" android:text="" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="25dp" android:textStyle="bold" android:textColor="#3399cc" /> Buna da dana sonradan kullanmak üzere ID ataması yaptık. Boyu ve genişliği içeriği kadar olacak şekilde ayarlandı. En başta içine bir şey yazmadığımız için, aslında ekranda yokmuş gibi duracak. İçindeki yazının özelliklerini de“textSize”,”textStyle”,”textColor” değerleri ile ayarladık. Butonumuzu oluşturuyoruz: <Button android:id="@+id/yazdir" android:text="Yazdır" android:layout_width="101dp" android:layout_height="wrap_content" android:layout_gravity="center" android:textStyle="bold"/> Diğerlerinde olduğu gibi butona da ID ataması yaptık, boyutunu ve yerini belirledik. Containerımızı kapatmayı unutmuyoruz: </LinearLayout> Container ve componentler ile işimiz bittikten sonra java dökümanına geçip,butonun işlevini belirlememiz gerekiyor. Java dökümanı içine şunları yazıyoruz: package com.deneme2; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class Deneme2Activity extends Activity implements OnClickListener /**Called when the activity is first created. */ EditText yazigirisi; TextView goruntule; Button yazdir; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); yazigirisi = (EditText)findViewById(R.id.yazigirisi); goruntule = (TextView)findViewById(R.id.goruntule); yazdir = (Button)findViewById (R.id.yazdir); yazdir.setOnClickListener(this); { } public void onClick(View arg0) { // TODO Auto-generated method stub goruntule.setText(yazigirisi.getText()); } } Burada öncelikle import işlemlerini yapmamız gerekiyor. Button,edittext ve textview kullandığımız için bunları import etmek zorundayız,aynı şekilde listener için de import işlemi gerçekleştirmemiz gerekiyor: import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; Bir önceki örnekte olduğu gibi bunda da main.xml içerisindeki ID’leri kullanarak componentlere java dökümanı içerisinden ulaşıyoruz: EditText yazigirisi; TextView goruntule; Button yazdir; yazigirisi = (EditText)findViewById(R.id.yazigirisi); goruntule = (TextView)findViewById(R.id.goruntule); yazdir = (Button) findViewById (R.id.yazdir); Butona tıklandığı zaman işlem gerçekleştireceğimiz için butona listener eklememiz gerekiyor. Java sınıfımızı listener haline getirmek için listenerı implement ediyoruz ve butonumuzun üzerinde de dinleyiciyi ekliyoruz: implements OnClickListener yazdir.setOnClickListener(this); En son olarak da butonumuzun yapacağı işlemi yapıyoruz. Edittext içerisindeki yazıyı textview içerisine yazan işlevi sağlıyoruz: public void onClick(View arg0) { // TODO Auto-generatedmethod stub goruntule.setText(yazigirisi.getText()); } Uygulamamızın çıktısı ile şu şekilde oluyor: Ders 7: Android LinearLayout Uygulaması GÖNDEREN 3K ZAMAN: 16:34 26 OCAK 2012 PERŞEMBE Linearlayout üzerinde componentlerin nasıl yerleştiğini ve componentlerin özelliklerini anlamak için yapılan örnek şöyledir: main.xml dosyası açılır.İçerisine ilk olarak şunlar yazılır: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center_horizontal"> Burada tam ortada bulunan ve ekranı hem dikey hem yatay olarak kaplayan bircontainer oluşturduk. İçerisine yerleştirilecek componentler “orientation” değerinin“vertical” olması sebebiyle alt alta dizilecek. Bundan sonra değişik şekillerde butonlar oluşturulur: İlk olarak, satırı tamamen kaplayan ama yüksekliği içeriği kadar olacak bir buton yaratma: <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Satırı kaplayan tuş" /> “layout_width” değerinin “fill_parent” olması sebebi ile buton tüm satırı kaplıyor. Buton üzerinde “Satırı kaplayan tuş” yazısı görülecek. İkinci olarak, içeriği kadar eni ve boyu olan bir buton yaratma: <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Normal boyutta tuş" /> “wrap_content” değerini vererek butonun içeriği kadar bir boyutta olmasını sağlıyoruz. Buton üzerinde “Normal boyutta tuş” yazısı görülecek. Son olarak spesifik bir boyutta ve padding özelliğine sahip bir buton yaratma: <Button android:layout_width="250px" android:layout_height="wrap_content" android:padding="20px" android:text="250px genişliğinde,20px paddingli tuş" /> Burada “layout_width” değerine 250px vererek, bu butonun genişliğini sabitledik.”padding” değerine verdiğimiz 20px ile, buton içerisindeki yazı, çerçevesinden 20px daha içeride olacak. Buton üzerinde “250px genişliğinde,20px paddingli tuş” yazısı görülecek. Component olarak bir de radiobuttonlar kullanalım. Radiobutton yaratmadan önce, bu özel butonları içerisine koyacağımız özel bir container oluşturmamız gerekiyor. Bunun adı “RadioGroup”. Yani ana containerımız içerisinde radiogroup containeri var olacak. Ve bu radiogroup containerı içinde de bizim radiobutonlarımız yer alacak. <RadioGroup android:id="@+id/radiogroup" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5px"> <RadioButton android:id="@+id/yatay" android:layout_weight="1" android:text="yatay"/> <RadioButton android:id="@+id/dikey" android:layout_weight="1" android:text ="dikey" /> </RadioGroup> Burada bir RadioGroup containerı oluşturduk ve buna daha sonra java dökümanı içerisinden erişebilmek için “radiogroup” Id’sini verdik.”Orientation” değerinin“horizontal” olması sebebi ile içerisine koyacağımız radiobuttonlar yan yana dizilecek. container “layout_width” değerinin “fill_parent” olması Ayrıca sebebi bu ile bulunduğu satırı tamamen kaplayacak. Containerı oluşturduktan componentlerini sonra, içerisine oluşturuyoruz. koyacağımız Her iki radiobutton butonda da “layout_weight” değerine 1 vererek, her ikisinin de satırda eşit boyutta görünmesi sağladık. Yani containerı eşit olarak paylaştılar. Her ikisine de, daha sonra java dökümanı içerisinden erişebilmek için ID ataması yaptık. Birinin yanında “yatay” yazısı görünecekken diğerinin yanında “dikey” yazısı görülecek. En son olarak da LinearLayout tagını kapamayı unutmuyoruz. </LinearLayout> Artık main.xml oluşturduk.Artık içerisindeki işimiz sıra,uygulamayı ilk bitti.İstediğimiz componentleri oluşturduğumuzda oluşan xxxxActivity.java (xxxx kısmı sizin uygulamada kullandığınız isme göre değişiklik gösterir) dosyası ile oynamak. Bu dosya içerisine şu kodları yazıyoruz: package com.deneme; import android.app.Activity; import android.os.Bundle; import android.widget.LinearLayout; import android.widget.RadioGroup; public class DenemeActivity extends Activity implements RadioGroup.OnCheckedChangeListener { /** Called when the activity is first created. */ RadioGroup radiogroup; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); radiogroup=(RadioGroup)findViewById(R.id.radiogroup); radiogroup.setOnCheckedChangeListener(this); } public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub if(group==radiogroup) { if(checkedId == R.id.yatay) radiogroup.setOrientation(LinearLayout.HORIZONTAL); else radiogroup.setOrientation(LinearLayout.VERTICAL); } } } Kullandığımız containerlar için import işlemi yapmamız gerekiyor. LinearLayout ve RadioGroup için import android.widget.LinearLayout; import android.widget.RadioGroup; satırlarını eklememiz gerekiyor. RadioButtonlardan herhangi biri seçildiğinde, işlem yapmak istediğimiz için dinleyici sınıfı implement etmemiz gerekiyor. implements RadioGroup.OnCheckedChangeListener Dinleyici sınıfı RadioGroup üzerine yerleştirerek, işlemlerin o grup içerisinden yapılan bir seçimde gerçekleşeğini belirlemek istiyoruz. Main.xml içerisinde yazmış olan RadioGroup’a erişmek için ona verdiğimiz ID’yi kullanıyoruz ve onu burada bir değişkene atıyoruz. Daha sonra da dinleyiciyi üzerine yerleştiriyoruz. RadioGroup radiogroup; radiogroup=(RadioGroup)findViewById(R.id.radiogroup); radiogroup.setOnCheckedChangeListener(this); Bu yerleşimi gerçekleştirdikten sonra, seçimin sonucunda ne yapılacağını belirlememiz gerekiyor. Bu örnekte RadioGroup içerisinde eğer yatay butonu seçilirse, butonlar yatay olarak dizilecek ( zaten en başta da böyle belirlediğimiz için bir değişiklik olmayacak), dikey butonu seçilirse de butonlar dikey olarak dizilecek. Bu butonlara ulaşmak için ise yine main.xml içerisinde bunlara atadığımız ID’lerden faydalanıyoruz. public void onCheckedChanged(RadioGroup group, int checkedId) { // TODO Auto-generated method stub if(group==radiogroup) { if(checkedId == R.id.yatay) radiogroup.setOrientation(LinearLayout.HORIZONTAL); else radiogroup.setOrientation(LinearLayout.VERTICAL); } } Unutmayın, istediğiniz gerçekleştirebilirsiniz. componente Burada (listener) eklenmiştir. Uygulama şu şekilde görülecektir: sadece dinleyici RadioGroup uygulayarak üzerine işlem dinleyici