Xamarin – Yeni aktivite başlatmak | Başka ekrana geçiş yapmak

1 Kas

Merhaba arkadaşlar,
Bugün sizlere Xamarin’de bir butona vs tıklandığında başka ekranlara nasıl geçiş yaparsınız anlatmaya çalışacağım.
C# ile Windows Formda geliştirme yapanlar yeni form geçişleri için şu kullanımı biliyordur.

NewFormName frm = new NewFormName();
frm.ShowDialog();

İşte bu yazıda, bu işlemin Xamarin karşılığını anlatacağım.

Başlayalım;

1- Boş bir android projesi oluşturup, 1 adet buton ekledim.

Xml karşılığı;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <Button
        android:text="Yeni ekrana geç"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/btnNewActivity" />
</LinearLayout>

2- Şimdi yeni bir ekran(Layout) ve Activity classı ekleyelim;
Xamarinde her ekran(layout) bir Activity classına denk gelir.

Layout eklemenme işlemi;
Layout klasörü üzerinde sağ tıklayıp > Add > New Item > Android Layout > Test.axml adında bir layout ekledim.

Bu Test.axml dosyasına bir adet Textview ekledim xml karşılığı;

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:minWidth="25px"
    android:minHeight="25px">
    <TextView
        android:text="TEST EKRANINA HOŞ GELDİNİZ"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/txtTest" />
</LinearLayout>

Activity ekleme işlemi;
Proje üzerinde sağ tıklayıp > Add > New Item > Activty > TestActivity.cs adında bir activty classı ekledim.

Not : Activity isimlendirmesini Layout ile aynı yapmanızı öneririm. Böylece bir bakışta Activity‘nin hangi Layout‘u açtığını anlamış olursunuz.

Şuan Soliton Explorer böyle gözüküyor;

3- TestActivity clasını aşağıda ki gibi değiştirelim.

[Activity(Label = "TestActivity")]
    public class TestActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //Burada hangi Layout'un yükleneceği belirtiliyor.
            SetContentView(Resource.Layout.Test);
        }
    }

Commentli kısımda belirttiğim gibi hangi layoutun yükleneceğini SetContentView metoduyla belirttik.

4- MainActivity classını aşağıda ki gibi düzenleyelim;

[Activity(Label = "XamarinNewActivityTest", MainLauncher = true)]
    public class MainActivity : Activity
    {
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);

            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);

            //Buton bilgileri çekilir.
            Button btnNewActivity = FindViewById<Button>(Resource.Id.btnNewActivity);

            //Buton click eventine oluşturulur.
            btnNewActivity.Click += BtnNewActivity_Click;
            
        }

        private void BtnNewActivity_Click(object sender, System.EventArgs e)
        {
            //TestActivity classına gider.
            //TestActivity classında Test Layout yüklenir.
            StartActivity(typeof(TestActivity));
        }
    }

İşlemler bu kadardır.

StartActivity(typeof(TestActivity)) methodu ile TestActivity classımızı tetikliyoruz bu class içerisinde ise SetContentView(Resource.Layout.Test); methodu ile hangi ekranın açılacağını belirttiğimiz için Test ekranımızın çalışmasını sağlamış olduk.

Bir sonra ki yazımda görüşmek üzere.

One Reply to “Xamarin – Yeni aktivite başlatmak | Başka ekrana geçiş yapmak”

  1. Pingback: Xamarin – Ekranlar arası parametre göndermek/almak | Semih Çelikol

Bir Cevap Yazın