Android App (Xamarin), nazwa: HelloWorld
Blank App
Android 7.1 (Nougat)
1. Plik activity_main.axml
2. Plik MainActivity.cs - przycisk
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.V7.App;
namespace HelloWorld
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private Button przycisk;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
przycisk = (Button)FindViewById(Resource.Id.button1);
przycisk.Click += (object sender, System.EventArgs e) => { Toast.MakeText(this, "Hello World!", ToastLength.Long).Show(); };
//zdarzenie Click - od Xamarin.Android
}
}
}
3. Pozostałe kontrolki
using Android.App;
using Android.Widget;
using Android.OS;
using Android.Support.V7.App;
namespace HelloWorld
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
private Button przycisk;
private TextView etykieta;
private ListView lista;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
przycisk = (Button)FindViewById(Resource.Id.button1);
przycisk.Click += (object sender, System.EventArgs e) => { Toast.MakeText(this, "Hello World!", ToastLength.Long).Show(); };
etykieta = (TextView)FindViewById(Resource.Id.textView1);
lista = (ListView)FindViewById(Resource.Id.listView1);
string[] łańcuchy = new string[]
{
"tekst1",
"tekst2",
"tekst3",
"tekst4"
};
ArrayAdapter adapter = new ArrayAdapter(this, Android.Resource.Layout.SimpleListItem1, łańcuchy);
lista.Adapter = adapter;
lista.ItemClick += Lista_ItemClick;
}
private void Lista_ItemClick(object sender, AdapterView.ItemClickEventArgs e)
{
Toast.MakeText(this, "Kliknięta pozycja " + e.Position + " (" + (e.View as TextView).Text + ")", ToastLength.Long).Show();
}
}
}
4. Korzystanie z zasobów
Dodajemy dwa łańcuchy
HelloWorld
Settings
Kliknij mnie!
Aplikacja GUI
Użycie w pliku xml:
* Aby zmniejszyć rozmiar projekt do apakowania można usunąć wszystkie podkatalogi Debug (bin\Debug i obj\Debug)
5. Podpinanie metody zdarzeniowej z poziomu pliku AXML
W MainAvtivity musimy zdefiniować publiczną i wyeksportowaną metodę:
[Java.Interop.Export("przycisk_onClick")]
public void przycisk_onClick(View v)
{
Toast.MakeText(this, "Hello World!", ToastLength.Long).Show();
}
* Aby atrybut Export działał, trzeba do referencji dodać Mono.Android.Export.dll
* Przed testowaniem usuwamy podłączenie zdarzenia Click