Soru & Cevap

Android Listener Sınıfları

11.04.2018 - 11:02

Merhaba. Android ile ilgili bir ödevim var. Çözümünü bulamıyorum. Anlamam ve ödevimi yapmam için yardımcı olabilir misiniz?

"Listener sınıfları Android'de arayüzler ile tanımlanmaktadır. Bileşenlere yönelik olay esnasında
tetikleme eklemek için ise ilgili olay bu listener sınıfları kullanılarak dinlenmektedir.
Örnek olarak button'ın tıklanmasını karşılamak için button'un setOnClickListener metodu
kullanılacaktır. Bu metod parametre olarak new View.OnClickListener tanımını içermekte ve
arayüzdeki ilgili metod (bu örnek için onClick metodu) override edilerek tanımlanmaktadır.
Java'da new anahtar sözcüğü, sınıflarla beraber kullanılarak nesne üretilmesini sağlamak için
kullanılmaktayken, yukarıdaki örnekteki durum nasıl gerçekleşmektedir, açıklayınız."

Soruyu anladım ancak ne cevaplayabilecek tecrübem var ne de bir kaynaktan okuyarak nasıl bir cevap bulacağımı bilmiyorum. Yardımcı olur musunuz?
 

416 Görüntülenme

1 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user cagatay347923
cagatay347923
12.04.2018 - 10:16

Merhaba Ahmet,Anladığım kadarıyla sana  OnClick metodunun nasıl yazıldığını filan anlatmanı istiyor,OnClick metodu Genellikle butonların tıklanmasında gerçekleşir ve design kısmından Buttonların OnClick Metotlarını Active etmek gerekir Eğer SetOnclickListener metodunu kullanacak olursan design kısmından active etmene gerek yoktur.Örneğin:Uygulamamızda 4 tane buton olduğunu düşünelim Button1,Button2,Button3,Button4 olduğunu düşünürsek her butona bir id vermen gerekicektir bilgin olmadığını varsayarak değişken nasıl tanımlanır vs onlarıda yazıcam

Şimdi her nesnenin bir tipi vardır Örneğin EditText tipinden metinsel ifadelerin yazıldığı bir kaç nesneler vardır PlainText en çok kullanılanıdır.Her nesneyi tanımlarken VeriTipini Nesnenin tipi olarak düşünürsen daha kolay anlıcayacağını düşünüyorum.

Şimdi bu 4 butonu tanımlarken bu mantıkla düşünürsek şunu yapıcaz Sana direk 4 butonun Toast Mesaj verdiği kodu atıyorum;

 


public class MainActivity extends AppCompatActivity implements View.OnClickListener { @Override public void onClick(View v) { switch (v.getId()){ case R.id.btn1: Toast.makeText(getApplicationContext(),"Buton1'e basıldı.",Toast.LENGTH_LONG).show(); break; case R.id.btn2: Toast.makeText(getApplicationContext(), "Buton2'ye basıldı.", Toast.LENGTH_SHORT).show(); break; case R.id.btn3: Toast.makeText(getApplicationContext(), "Button3 'e basıldı.", Toast.LENGTH_SHORT).show(); break; case R.id.btn4: Toast.makeText(getApplicationContext(), "Button 4 'ebasıldı", Toast.LENGTH_SHORT).show(); break; } } Button btn1,btn2,btn3,btn4; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn1=(Button)findViewById(R.id.btn1); btn2=(Button)findViewById(R.id.btn2); btn3=(Button)findViewById(R.id.btn3); btn4=(Button)findViewById(R.id.btn4); } }

Toast Mesajı altta küçük bir baloncuk işareti ile mesaj verir.Toast.LENGTH_SHORT kısa süreli mesaj verir LONG ise uzun süreli mesaj verir Buttonlarımızı tanıttık findviewById ile butonlarımızın idlerini uygulamamıza tanıttık Onclick metounda eğer id'si btn1 ise button1'e basıldı diye mesaj verdik diğerleri içinde idleri farklı olması şartıyla aynı şekilde toast mesajı verdik örnek bir uygulama çalıştırıp deneyebilirsin kafana takılan bir soru varsa sorabilirsin kolay gelsin.