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.
Pingback: Xamarin – Ekranlar arası parametre göndermek/almak | Semih Çelikol