| 
		    | 
		
    
    
    ![]()  | 
    Neste artigo vou mostrar como podemos realizar o tratamento de eventos em uma aplicação Xamarin Android de forma declarativa usando o VS 2015 Community e a linguagem C#. | 
				
				![]()  | 
  
Em aplicações Android os componentes da interface do usuário (UI) são totalmente isolados da sua Activity associada.
Para realizar a vinculação ou para ligar os componentes com a sua atividade precisamos realizar uma abordagem parecida com a adotada pelo JavaScript que é : primeiro localizar o elemento e então interagir com ele.
Vamos supor que temos uma view representada por um arquivo .axml contendo um button com o id MyButton (esse cenário ocorre sempre que você cria uma aplicação Android vazia no Visual Studio)
Neste caso teremos o seguinte código Main.axml:
		![]()  | 
		
		![]()  | 
	
Na respectiva Activity associada para poder usar o evento Click do botão de comando temos o seguinte código:
		using Android.App;
using Android.OS;
using Android.Widget;
		namespace App.PrimeiraApp
{
    [Activity(Label = "App.PrimeiraApp", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        int count = 1;
		        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
		            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.Main);
		            // Get our button from the layout resource,
            // and attach an event to it
            Button button = FindViewById<Button>(Resource.Id.MyButton);
		button.Click += delegate { button.Text = string.Format("{0} clique!", count++); }; } } }  | 
	
Observe que tivemos que instanciar um objeto do tipo Button usando FindViewById e depois definimos o evento Click para a instância criada.
Mas será que essa é a única abordagem que temos para pode realizar o tratamento de eventos ???
Não. !!
Podemos realizar o tratamento de eventos de forma declarativa no arquivo .axml.
Realizando o tratamento de eventos de forma declarativa
Para realizar o tratamento de eventos de forma declarativa no arquivo .axml basta seguir o seguinte roteiro:
1- Inclua uma referência à biblioteca Mono.Android.Export no seu projeto;
No menu Project clique em Add Reference e selecione Framework e marque a opção Mono.Android.Export;
2- Declara o evento que deseja tratar no arquivo .axml. Veja o exemplo a seguir :
		... <Button android:id="@+id/MyButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/Hello" android:onClick="btn_Evento"/> ...  | 
	
3 - Na respectiva Activity defina o seguinte código :
		using Android.App;
using Android.OS;
using Android.Views;
using Android.Widget;
using Java.Interop;
		namespace App.EventosDeclarativos
{
    [Activity(Label = "App.EventosDeclarativos", MainLauncher = true, Icon = "@drawable/icon")]
    public class MainActivity : Activity
    {
        int count = 1;
		        [Export("btn_Evento")]
        public void button_Click(View v)
        {
            Toast.MakeText(this, "Evento Click", ToastLength.Short).Show();
            (v as Button).Text = string.Format("{0} cliques !", count++);
        }
		        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            SetContentView(Resource.Layout.Main);
        }
    }
}
		 | 
	
No código usamos o atributo [Export("nome_evento_no_XML")] e definimos o código no evento Click.
Note que declaramos no namespace Java.Interop.
Executando o código acima teremos o mesmo comportamento para o evento Click e veremos também o aviso - "Evento Click" - sendo exibido no dispositivo:

Pegue o projeto completo aqui : App.EventosDeclarativos.zip (sem as referências)
Porque Deus enviou o seu Filho ao mundo, 
não para que condenasse o mundo, mas para que o mundo fosse salvo por ele.
Quem crê nele não é condenado; mas quem não crê já está condenado, porquanto não 
crê no nome do unigênito Filho de Deus.
João 3:17,18
| 
    
    Veja os 
    Destaques e novidades do SUPER DVD Visual Basic 
(sempre atualizado) : clique e confira ! 
 Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ?  | 
  
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
Curso Fundamentos da Programação Orientada a 
Objetos com VB .NET
![]()
Xamarim - Desenvolvimento Multiplataforma com C# ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Criando sua primeira ... - Macoratti.net
Xamarin.Forms - Olá Mundo - Anatomia da aplicação - Macoratti.net
https://developer.xamarin.com/api/type/Android.App.AlertDialog/