Xamarin Android Widget Kontrolleri

Merhaba arkadaşlar, bugün sizlere Xamarin Android uygulamasında toolslardaki widgetları nasıl kontrol edeceğinizden bahsedeceğim. Örnek olarak ben buton ve textview kontrollerini göstereceğim diğerleri de aynı şekilde mantıkla yapabilirsiniz.

Benim yaptığım örnekte basit bir şekilde ekranda iki tane buton ve bir tane textview olacak ve butonlara basılmaya göre bu textview yazısını değiştireceğim.

İlk olarak sıfır bir projemizi oluşturuyoruz ve defaultta gelen ve projemizde “Resources -> layout” konumunda olan “Main.axml” içinde ekranımıza iki buton ve bir textview ekleyip id ve yazılarını isteğimize göre güncelleştiriyoruz.

Daha sonra da önceki yazımda da bahsettiğim gibi tüm Layoutlarımzın kontrolünü tek bir dosyadan “MainActivity.cs” dosyasından erişerek gerekli kontrollerimizi yapıyoruz demiştik.

namespace AndroidApp
{
[Activity(Label = "AndroidApp", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
// SetContentView (Resource.Layout.Main);
}
}
}

Daha önceki yazıda da bahsettiğim gibi yorum olarak görünen “SetContentView (Resource.Layout.Main);” kod kısmını yorumdan kaldırdığımız zaman main layoutumuz açılış ekranı olacaktır.

Burada ekranlarımızdaki widgetlara ulaşmak için “protected override void OnCreate(Bundle bundle)” içerisinde tüm widget kontrollerine erişip kendi tipinde değişkenlere atamamız gerekmektedir.

Ekanımda yer alan iki buton ve bir text view için aşağıdaki şekilde kontrollerimi tanımlıyorum ve bunlara erişim sağlamış oluyorum.

Button btn1 = FindViewById <Button>(Resource.Id.btn1);
Button btn2 = FindViewById<Button>(Resource.Id.btn2);
TextView textView1 = FindViewById<TextView>(Resource.Id.textView1);

Hangi kontrol olursa olsun fark etmeden bu şekilde her bir layoutumuzun altındaki kontrollere erişebilmekteyiz. Şimdi buttonlarıma eriştim ve bu butonumun click event ına erişip bunu tektiklemem gerekmektedir.

Bunu yapmanın iki ayrı yöntemi bulunmaktadır. Ekranımda bulunan butonları da ayrı ayrı yöntemlerle yapacağım.

Yöntem 1:

btn1.Click += (sender, e) =>
{
textView1.Text = "Click button 1";
};

Yöntem 2:

btn2.Click += Btn2_Click;
private void Btn2_Click(object sender, System.EventArgs e)
{
TextView textView1 = FindViewById<TextView>(Resource.Id.textView1);
textView1.Text = "Click button 2";
}

Son olarak tüm kodları bir arada görecek olursak classımızın içindeki son kod yapısı aşağıdaki gibi olacaktır.

Projemizi derleyip emülatörde çalıştırırsak eğer buttonlara basıdığında ekran görüntüleri aşağıdaki gibi olacaktır.

Bir Cevap Yazın