Tek Listener İle Butonları Kontrol Etme |
Android Programlama - 8
Mobil projeler geliştirilirken birden fazla buton kullanma durumu söz konusu olabilir. Her bir butonun olayını ayrı ayrı tanımlayabileceğimiz gibi tek bir olay kullanarak da tanımlayabiliriz. Tek listener ile kontrol etme durumu kodlama açısından daha iyi olmaktadır ve kod içinde ki kalabalığı önlemektedir. Bu yazımızda birden fazla butonu tek bir listener ile kontrol etmeyi irdeleyeceğiz.
22.02.2015 tarihli yazı 14184 kez okunmuştur.
Mobil android uygulamalarında butonların önemi yok sayılamaz. Butonlar sayesinde çoğu işlemi android programlamada yapabiliriz. Örnek verilirse eğer butonları kullanarak başka bir sayfaya geçebiliriz ya da butonları kullanarak müzik başlatıp durdurabiliriz. Bu örnekler çoğaltılabilir. Fakat projelerde ne kadar fazla buton kullanılırsa kod karmaşıklığı o derecede artacaktır. Bu durumu butonları tek listener ile kontrol ederek çözebiliriz.
İlk olarak boş bir proje oluşturulmalıdır. Daha sonra uygulamamızda örnek olarak 3 buton verilmiştir fakat bu sayı çoğaltılabilir. activity_main.xml içerisine 3 buton sürükleyip bırakılmıştır. Uygulama çalıştırıldığında hangi butona basıldığını Toast ile öğreneceğiz. activity_main.xml içeriği şu şekilde olmalıdır.
İlk olarak boş bir proje oluşturulmalıdır. Daha sonra uygulamamızda örnek olarak 3 buton verilmiştir fakat bu sayı çoğaltılabilir. activity_main.xml içerisine 3 buton sürükleyip bırakılmıştır. Uygulama çalıştırıldığında hangi butona basıldığını Toast ile öğreneceğiz. activity_main.xml içeriği şu şekilde olmalıdır.
Şekil 1: activity_main.xml
►İlginizi Çekebilir : Android Programlamada Telefon Numarası Araması Nasıl Yapılır? | Android Programlama - 7
activity_main.xml içeriğini Şekil 1'deki gibi ayarladıktan sonra MainActivity.java sınıfı içeriğini düzenlemeye geçilebilir. MainActivity.java sınıfının içeriği aşağıdaki şekildeki gibidir.
MainActivity.java sınıfında ilk olarak implement olayını yapmamız gerekmektedir. Bunun için sınıf adının olduğu satırın devamına "implements View.OnClickListener" eklemesi yapılmaktadır. Bu eklemenin yapılması zorunludur. Butonlar bu listener üzerinden kontrol edilecektir. Sınıf içinde kaç adet buton kullanılacaksa o kadar tanımlama yapılmaktadır. Uygulamamızda 3 adet olduğu için 3 adet adet buton tanımlaması yapılmıştır. onCreate() metodu içerisine findViewById ile butonlara kimlik atama işlemi yapıldı. Tek listener kullanıldığı zaman bu tanımlamaların altına "butonDeğişkeninAdı.setOnClickListener(this)" satırlarının eklemesi yapılmalıdır. Bu satırla birlikte artık MainActivity.java sınıfında kullanılacak olan butonların tıklama olayının hangi sınıfta olacağı belirtilmiştir. Parantez içine yazılan "this" kelimesi MainActivity.java sınıfında olacağını belirtmektedir.
Bir önceki paragrafta anlatılanlar uygun bir şekilde yapıldığı zaman hiç bir sorun olmayacaktır. Yalnız bu durumda sınıf adının olduğu yerde yani MainActivity yazan yerde bir hata olacaktır. Bunun sebebi implements edilen OnClickListener olayının fonksiyonunun kullanılmamasından kaynaklanmaktadır. Hata olan yere gelip "Add unimplemented methods" seçeneğine basılırsa hata gidecektir ve altta onClick adında bir fonksiyon oluşacaktır. Bu fonksiyon içeriğine butonlara tıklandığı zaman ne olacağını belirteceğiz. Şu an sadece basit anlamda hangi butona tıklandığını anlamak için Toast mesaj verme komutu kullanıldı. Uygulamanın çıktısı aşağıdaki şekildeki gibidir.
Bir önceki paragrafta anlatılanlar uygun bir şekilde yapıldığı zaman hiç bir sorun olmayacaktır. Yalnız bu durumda sınıf adının olduğu yerde yani MainActivity yazan yerde bir hata olacaktır. Bunun sebebi implements edilen OnClickListener olayının fonksiyonunun kullanılmamasından kaynaklanmaktadır. Hata olan yere gelip "Add unimplemented methods" seçeneğine basılırsa hata gidecektir ve altta onClick adında bir fonksiyon oluşacaktır. Bu fonksiyon içeriğine butonlara tıklandığı zaman ne olacağını belirteceğiz. Şu an sadece basit anlamda hangi butona tıklandığını anlamak için Toast mesaj verme komutu kullanıldı. Uygulamanın çıktısı aşağıdaki şekildeki gibidir.
Şekil 3: Uygulamanın Çalışır Hali
►İlginizi Çekebilir : Veritabanı İşlemleri | Android Programlama - 5
Eğer implements etme konusunda herhangi bir sıkıntı oluşursa manuel olarak kütüphaneyi import etmek gerekmektedir. "import android.view.View.OnClickListener" eklemesi yapıldığı zaman hata kısmı düzelecektir.
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
- Güneş Enerji Santrallerinde Yıldırımdan Korunma ve Topraklama
- Megger Türkiye Ofisi
ANKET