Xamarin.Forms
- Criando uma aplicação com acesso a dados (SQLite) para Android usando o VS
2015 e
C# - III
![]() |
No artigo de hoje vou mostrar como criar uma aplicação multiplataforma que pode ser usada no Windows Phone, Android e iOS, usando o Xamarin.Forms com acesso ao banco de dados SQLite usando o Visual Studio e a linguagem C#. |
![]() |
Nota: Quando este artigo foi escrito o
Xamarin era uma ferramenta paga, mas em março de
2016 ela foi adquirida pela Microsoft e agora
esta integrada ao Visual Studio de forma
gratuita. Você pode fazer o download do Xamarin neste link : https://www.xamarin.com/download |
Vamos continuar a segunda parte deste artigo, definindo agora a nossa camada de Interface (UI), e, para isso vamos criar uma página XAML no projeto compartilhado Cadastro.Droid.
A linguagem de
marcação XAML- XAML- eXtensible Markup Language - faz parte do
Xamarin.Forms, e permite aos desenvolvedores definir interfaces de
usuário em aplicações mobiles usando marcações em
vez de código.
Você não é obrigado a usar XAML um programa Xamarin.Forms,
pode usar o código C# no arquivo code-behind, mas muitas vezes o código XAML é mais sucinto e mais
visualmente coerente.
Usando XAML, o
desenvolvedor Xamarin.Forms pode definir interfaces de
usuário usando todas as views, layouts e páginas Xamarin.Forms,
bem como classes personalizadas.
O arquivo XAML é analisado em tempo de compilação para
localizar objetos nomeados, e novamente em tempo de
execução para criar uma instância e inicializar objetos,
e estabelecer ligações entre esses objetos e código de
programação.
A XAML é particularmente adequada para uso com a
arquitetura MVVM(Model-View-ViewModel) : o XAML
define a View que está ligada ao código
ViewModel através de ligações de dados baseados em
XAML.
Definindo a Interface de Usuário compartilhada (UI) no projeto Portable
Selecione o projeto compartilhado - Cadastro - e no menu Tools clique em Add New Item;
A seguir selecione Visual C# -> Cross Plataform -> Forms Xaml Page;
Informe o nome ClientesPage e clique no botão Add;

Vamos definir uma interface com usuário usando uma ContentPage que representa uma única view, e um StackLayout para empilhar os controles verticalmente em um leiaute bem simples:

No arquivo ClientesPage.xaml inclua o código XAML abaixo:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="Cadastro.ClientesPage">
<ContentPage.Content>
<StackLayout Padding="20" Spacing="20">
<Entry x:Name="NomeCliente" Placeholder="Nome" TextColor="White"/>
<Entry x:Name="EmailCliente" Placeholder="Email" Keyboard="Email" TextColor="White"/>
<Button x:Name="Salvar" Text="Salvar Dados" Clicked="SalvarClicked"/>
<ListView x:Name="ListaCliente" BackgroundColor="White" />
</StackLayout>
</ContentPage.Content>
</ContentPage>
|
Iniciamos com a definição do layout ContentPage que exibe uma única View.
A seguir definimos um StackLayout que posiciona elementos filhos em uma única linha e que podem ser orientados horizontal e verticalmente.
Na sequência definimos 2 entradas para Nome, Email usando o controle Entry e definindo as propriedades PlaceHolder que exibe o texto definido no controle e Keyboard que define o tipo de teclado usado.
Concluímos definindo um controle Button com o texto - Salvar Dados com o evento SalvarClicked associado ao evento Click do botão, e a seguir definimos o controle ListView - ListaCliente com uma cor de fundo para destacá-lo.
Abaixo temos a UI apresentando em um emulador Android:

Para poder exibir os itens no controle ListView, que serão os clientes cadastrados, temos obter os clientes e atribuir os valores à propriedade ItemsSource do controle ListView.
Fazemos isso no arquivo code-behind ClientesPage.xaml.cs definindo o código a seguir :
using System; using Xamarin.Forms; namespace Cadastro
{
public partial class ClientesPage : ContentPage
{
public ClientesPage()
{
InitializeComponent();
using (var dados = new AcessoDB())
{
this.ListaCliente.ItemsSource = dados.GetClientes();
}
}
}
}
|
E para concluir precisamos implementar no arquivo code-behind ClientesPage.xaml.cs o código relacionado com o evento click do botão que definimos como SalvarClicked :
using System; using Xamarin.Forms; namespace Cadastro
{
public partial class ClientesPage : ContentPage
{
public ClientesPage()
{
InitializeComponent();
using (var dados = new AcessoDB())
{
this.ListaCliente.ItemsSource = dados.GetClientes();
}
}
protected void SalvarClicked(object sender, EventArgs e)
{
var cliente = new Cliente
{
Nome = this.NomeCliente.Text,
Email = this.EmailCliente.Text,
};
using (var dados = new AcessoDB())
{
dados.InserirCliente(cliente);
this.ListaCliente.ItemsSource = dados.GetClientes();
}
}
}
} |
O código associado ao tratamento do evento Click - SalvarClicked - cria uma instância do objeto Cliente e atribui às propriedades Nome e Email os valores que estão definidos na interface do usuário , ou seja, nos controles Entry : NomeCliente e EmailCliente.
Depois criamos uma instância da classe AcessoBD e usamos o método inserirCliente() passando os dados do cliente atual e depois exibimos os dados no ListView usando o método GetClientes().
Na próxima parte do artigo vamos concluir a nossa aplicação fazendo o deploy e testando em um emulador Android.
Pois
tu, Senhor, és bom, e pronto a perdoar, e abundante em benignidade para todos os
que te invocam.
Salmos 86:5
|
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 ? |
Gostou ?
Compartilhe no Facebook
Compartilhe no Twitter
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 Studio - Desenvolvimento Multiplataforma com C# (Android, iOS e Windows)
Xamarim - Criando Apps com o Visual Studio e C# (vídeo aula)