Android’de onClickListener Nasıl Kullanılır? – 2

Bir önceki Android Tıklama Dinleyici yazımı okumanızı tavsiye ederim. Zira burada verilmiş olan örnekler işaret ettiğim yazı üzerinden gerçekleştirilecektir.

İkinci yöntemde, birinci yöntemde olduğu gibi xml’de görsellere id atama ve bunları Java activity dosyasımızda tanıtma aşamaları vardır. Özetle bu kısım ilk üç yöntemde ortaktır. Farklı olan kısım görsele dinleyici atarken parantez içerisinde belirttiğimiz dinleyici değişkeninin tanımlanmasıdır.

İlk yöntemde, View.OnClickListener arayüzünü uygulayan (implements) Dinleyicim isminde bir sınıf tanımlamıştık. Daha sonra Dinleyici dinleyici=new Dinleyici(); ifadesiyle bu sınıftan bir nesne oluşturmuş ve görsele(örnekteki butona) ClickListener olarak atamıştık(set).

Ancak bu çalışma biçimine sahip dinleyici bir kez kullanacaksak, farklı bir isimde sınıf tanımlama ve bu sınıftan nesne oluşturup bu nesneye isim verme gibi kısımlar gereksiz olabilir.

Bu yeni yöntemde ise View.OnClickListener arayüzünü uygulayan sınıfı parantez içinde tanımlar ve bu sınıftan bir nesne (tıklama dinleyici) oluştururuz. Bu sınıfa anonim sınıf denir. Çünkü sınıfa bir isim vermedik. Değişkene de isim verme ihtiyacı duymadan new takısı ile oluşturduk.

Özetle ilk yöntemde yorum satırına alınan, sınıf ve değişken tanımını, new View.OnClickListener() { sınıfın tanımı} biçimine indirdik.

Son yöntemde, ilk iki yöntemden farklı olarak xml’deki tıklanması dinlenecek görsellere id atama ve bunları Java activity dosyamızda tanıtma zorunluluğu yoktur.

Bu yöntemde, önceki yöntemlerden farklı olarak dinlenecek görsele xml’de id vermeyiz, ancak görsele tıklandığında çalışacak dinleyici metodun ismini belirtiriz.

Java dosyamızda ismini verdiğimiz dinleyici metodu tanımlarız. Bu metodun işlevi önceki yöntemlerdeki onClick metodu ile aynıdır, ancak ismini kullanıcı (yazdir gibi) tanımlar. Bu metodun parametresi olan View sınıfına ait tv isimli nesne tıklanan görselin kendisidir.

Bir cevap yazın

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