
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