Android com C# - Introdução ao Desenvolvimento

Page 1


EDIÇÃO FCA – Editora de Informática, Lda. Av. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351 213 511 448 fca@fca.pt www.fca.pt DISTRIBUIÇÃO Lidel – Edições Técnicas, Lda. Rua D. Estefânia, 183, R/C Dto. – 1049-057 Lisboa Tel: +351 213 511 448 lidel@lidel.pt www.lidel.pt LIVRARIA Av. Praia da Vitória, 14 A – 1000-247 Lisboa Tel: +351 213 511 448 * Fax: +351 213 522 684 livraria@lidel.pt Copyright © 2016, FCA – Editora de Informática, Lda. ISBN edição impressa: 978-972-722-844-7 1.ª edição impressa: novembro 2016 Impressão e acabamento: Tipografia Lousanense, Lda – Lousã Depósito Legal n.º 417576/16 Capa: José M. Ferrão – Look-Ahead

Marcas Registadas de FCA – Editora de Informática, Lda. –

®

®

®

Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto aconselhamos a consulta periódica do nosso site (www.fca.pt) para fazer o download de eventuais correções. Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de publicação da mesma. Os nomes comerciais referenciados neste livro têm patente registada. Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer processo eletrónico, mecânico, fotocópia, digitalização, gravação, sistema de armazenamento e disponibilização de informação, sítio Web, blogue ou outros, sem prévia autorização escrita da Editora, exceto o permitido pelo CDADC, em termos de cópia privada pela AGECOP – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas.


ÍNDICE GERAL PRÓLOGO ......................................................................................................... XI COMO UTILIZAR ESTE LIVRO .............................................................................. XIII PARTE I: TEÓRICO-PRÁTICA ................................................................................. 1 1. FUNDAMENTOS ................................................................................................. 3 1.1 Preparação dos materiais ................................................................................................................ 3 1.1.1 Sistema operativo ................................................................................................................ 3 1.1.2 Visual Studio ........................................................................................................................ 5 1.1.3 Xamarin ................................................................................................................................ 7 1.2 Modelos (templates) .......................................................................................................................... 9 1.2.1 Grupo Android .................................................................................................................... 9 1.2.2 Grupo Cross-Platform....................................................................................................... 10 1.3 Primeira aplicação.......................................................................................................................... 12 1.3.1 Criação do projeto ............................................................................................................. 12 1.3.2 Edição de código................................................................................................................ 13 1.3.3 Emulação ............................................................................................................................ 14 1.4 Sensibilização quanto ao sistema de ajuda ................................................................................. 17 1.4.1 Utilização dos recursos online .......................................................................................... 17 1.4.2 Download e instalação da biblioteca para uso local ....................................................... 17 1.5 Exercícios propostos ...................................................................................................................... 18 2. ATIVIDADES .................................................................................................. 21 2.1 Ciclo de vida de uma atividade ................................................................................................... 21 2.2 Namespaces predefinidas ............................................................................................................... 22 2.3 Android Manifest........................................................................................................................... 22 2.3.1 Acesso ................................................................................................................................. 23 2.3.2 Principais atributos ........................................................................................................... 23 2.4 Comunicação com o utilizador .................................................................................................... 24 2.5 Trabalhar com múltiplas atividades ............................................................................................ 27 2.5.1 Criação de uma atividade................................................................................................. 27 2.5.2 Iniciar uma atividade a partir de outra........................................................................... 28 2.5.3 Receção de dados provenientes de outra atividade ...................................................... 29 2.6 Alertas ............................................................................................................................................. 30 2.6.1 Métodos SetMessage e SetTitle .......................................................................................... 31 2.6.2 Métodos SetButton ............................................................................................................. 32 2.7 Exercícios resolvidos ..................................................................................................................... 33 2.7.1 Área ..................................................................................................................................... 33 2.7.2 Vencimentos ....................................................................................................................... 35 2.7.3 Fatorial ................................................................................................................................ 38 2.8 Exercícios propostos ...................................................................................................................... 40 © FCA – Editora de Informática


VIII

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO

3. LAYOUTS ...................................................................................................... 41 3.1 Layouts fundamentais .................................................................................................................... 41 3.1.1 Layout linear ....................................................................................................................... 42 3.1.2 Layout relativo .................................................................................................................... 49 3.1.3 Layout em tabela................................................................................................................. 51 3.1.4 Layout em moldura ............................................................................................................ 54 3.2 Outros layouts ................................................................................................................................. 57 3.2.1 Layout em lista .................................................................................................................... 57 3.2.2 Layout em grelha ................................................................................................................ 59 3.2.3 Layout para páginas web .................................................................................................... 60 3.2.4 Layout de rolagem .............................................................................................................. 61 3.3 Recursos .......................................................................................................................................... 63 3.3.1 Subpasta Drawable............................................................................................................ 63 3.3.2 Subpasta Values ................................................................................................................. 64 3.3.3 Subpasta Layout ................................................................................................................ 65 3.4 Exercícios resolvidos ..................................................................................................................... 67 3.4.1 Calculadora ........................................................................................................................ 67 3.4.2 Imagem de fundo .............................................................................................................. 77 3.4.3 Pares e ímpares .................................................................................................................. 79 3.5 Exercícios propostos ...................................................................................................................... 81 4. CONTROLOS .................................................................................................. 83 4.1 Controlos gerais ............................................................................................................................. 83 4.2 Controlos de data e hora ............................................................................................................... 86 4.2.1 Seletores .............................................................................................................................. 86 4.2.2 Relógios............................................................................................................................... 88 4.3 Controlos multimédia ................................................................................................................... 89 4.4 Exercícios resolvidos ..................................................................................................................... 91 4.4.1 Formatos ............................................................................................................................. 91 4.4.2 Idade ................................................................................................................................... 95 4.4.3 Imagens ............................................................................................................................... 98 4.5 Exercícios propostos .................................................................................................................... 101 5. XAMARIN FORMS .......................................................................................... 103 5.1 5.2 5.3 5.4 5.5

Utilização de template próprio .................................................................................................... 103 Criação do layout .......................................................................................................................... 104 Integração com C# ....................................................................................................................... 105 Teste ............................................................................................................................................... 106 Exercícios propostos .................................................................................................................... 107

6. GOOGLE PLAY .............................................................................................. 109 6.1 Releasing......................................................................................................................................... 109 6.1.1 Desativação da depuração.............................................................................................. 109 6.1.2 Ícone e versões da aplicação........................................................................................... 110 6.1.3 Compilação....................................................................................................................... 110 6.2 Packaging ....................................................................................................................................... 111 6.3 Publishing....................................................................................................................................... 112 © FCA – Editora de Informática


ÍNDICE GERAL

IX

PARTE II: PROJETOS....................................................................................... 113 7. PROJETO I .................................................................................................. 115 7.1 Desenvolvimento da interface.................................................................................................... 115 7.2 Exercícios propostos .................................................................................................................... 122 8. PROJETO II ................................................................................................ 123 8.1 Desenvolvimento da interface.................................................................................................... 123 8.2 Exercícios propostos .................................................................................................................... 134 9. PROJETO III ............................................................................................... 135 9.1 Desenvolvimento da interface.................................................................................................... 135 9.2 Exercícios propostos .................................................................................................................... 138 10. PROJETO IV .............................................................................................. 139 10.1 Desenvolvimento da interface.................................................................................................... 139 10.2 Exercícios propostos .................................................................................................................... 146 11. PROJETO V ............................................................................................... 147 11.1 Desenvolvimento da interface.................................................................................................... 147 11.2 Exercícios propostos .................................................................................................................... 150 12. PROJETO VI .............................................................................................. 151 12.1 12.2 12.3 12.4 12.5

Objetivo ......................................................................................................................................... 151 Regras ............................................................................................................................................ 151 Desenvolvimento da interface.................................................................................................... 153 Programação do jogo ................................................................................................................... 156 Exercícios propostos .................................................................................................................... 171

GLOSSÁRIO DE TERMOS – PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL ...................... 173 ÍNDICE REMISSIVO ........................................................................................... 175

© FCA – Editora de Informática


© FCA – Editora de Informática


PRÓLOGO O sistema operativo Android1 faz parte de uma das plataformas mais utilizadas em todo o mundo, podendo ser encontrado numa grande variedade de smartphones, netbooks e tablets atualmente presentes no mercado. Como concorrente direto de outros sistemas preponderantes (iOS2, Windows Mobile3 e Blackberry OS4), o Android tem vindo a ganhar vantagem devido, sobretudo, ao preço habitualmente mais atraente dos equipa-mentos em que opera, ao seu desempenho e à quantidade significativa de aplicações e de conteúdos multimédia que é possível descarregar gratuitamente a partir do Google Play5. O primeiro smartphone a executar o sistema Android foi o T-Mobile G1 (HTC Dream), feito pela Google em parceria com a HTC, em 2008. A partir de 2010, a Google, em conjunto com outras empresas, foi lançando uma sequela de dispositivos da popular série Nexus, que tem acompanhado com naturalidade o progresso tecnológico e o crescente grau de exigência dos utilizadores. Desde a primeira versão de 2008, a plataforma Android experimentou um número expressivo de atualizações que incrementaram substancialmente o sistema, adicionando novas funcionalidades e corrigindo erros de versões anteriores. A cada grande atualização, o nome de código do sistema alterna por ordem alfabética e entre nomes de doces, sendo os mais populares os seguintes: Ice Cream Sandwich, Jelly Bean e KitKat (versões 4.x), Lollipop (versões 5.0 e 5.1), e Marshmallow (versão 6.0). Atualmente, o sistema encontra-se na versão 7.0, promovida em agosto de 2016 com o nome de código Nougat. Até há pouco tempo, a programação de aplicações Android era fortemente subordinada à linguagem Java, tendo como principais interfaces de desenvolvimento o

Baseado em Linux; é atualmente desenvolvido pela Open Handset Alliance, um consórcio entre várias empresas, do qual faz parte a Google. 1

2 Originalmente desenvolvido para iPhone; a Apple Inc. decidiu alargar a sua aplicação para iPod, iPad e Apple TV. 3 Edição do sistema operativo Windows para dispositivos móveis desenvolvida pela Microsoft; foi lançada em 2015 e é a sucessora do Windows Phone. 4 Desenvolvido na linguagem C++ pela empresa canadiana BlackBerry fundamentalmente para operar em equipamentos da marca; inclui suporte para aplicações móveis escritas em Java. 5 Loja oficial da Google para distribuição e comercialização de aplicações Android, entre outros conteúdos digitais, tais como livros, músicas, revistas e filmes.

© FCA – Editora de Informática


XII

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO

Android Studio e o Eclipse. Nos dias de hoje, e beneficiando da popularidade do Visual Studio e do facto de a linguagem C# se ter tornado uma das linguagens mais usadas, a Microsoft disponibiliza uma ferramenta inovadora e poderosa – o Xamarin6 –, que possibilita aos programadores de C# criarem aplicações para Android com a mesma facilidade com que desenvolvem aplicações para o sistema operativo Windows (ou não fosse a escrita de código funcional e independente um dos grandes desafios de hoje da microcomputação). O crescendo de possibilidades desta moderna e atraente tecnologia, assim como a extrema atualidade do tema, foram os principais fatores que impulsionaram a escrita deste livro, cujo objetivo é o de veicular o conhecimento necessário para todos os que pretendem iniciar novas e agradáveis descobertas no mundo da computação móvel.

Henrique Loureiro

6 Plug-in desenvolvido pela empresa com o mesmo nome que torna possível a compilação de aplicações para múltiplas plataformas, adaptando o código para os diversos sistemas. Uma parceria entre a Microsoft e a Xamarin permitiu, pela primeira vez, a integração do Xamarin na versão 2013 do Visual Studio.

© FCA – Editora de Informática


COMO UTILIZAR ESTE LIVRO Com o objetivo de facilitar uma aprendizagem rápida e eficaz, tomámos a liberdade de sugerir um conjunto de indicações às quais o leitor deverá dar especial atenção de modo a tirar o maior proveito possível deste livro. Os diferentes temas foram encadeados de forma pedagógica e sequencial, estando divididos em duas partes – a primeira é composta por conteúdos teórico-práticos e a segunda por um conjunto de projetos práticos integralmente resolvidos. A tabela seguinte resume os principais conteúdos tratados na Parte I desta obra: CAPÍTULO

TÍTULO

1

Fundamentos

2

Atividades

3

Layouts

4

Controlos

5

Xamarin Forms

6

Google Play

PRINCIPAIS TEMAS/ASSUNTOS Preparação dos materiais Apresentação do ambiente de desenvolvimento Integração com Xamarin Desenvolvimento da primeira aplicação Emulação Sensibilização quanto ao sistema de ajuda Ciclo de vida Criação de atividades Interação com o utilizador Intents Alertas Disposição linear Disposição relativa Disposição em tabela Disposição em moldura Layouts avançados Utilização de recursos Controlos gerais Controlos de data e hora Controlos multimédia Conceitos gerais Criação de projetos Releasing Packaging Publishing

© FCA – Editora de Informática


XIV

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO

A Parte II desta obra é constituída por seis projetos integralmente resolvidos, que irão permitir aos leitores consolidarem os conhecimentos adquiridos ao longo da obra: CAPÍTULO 7 8 9 10 11 12

TÍTULO

TEMA

Projeto I Projeto II Projeto III Projeto IV Projeto V Projeto VI

Jogo educativo (numeração romana) Jogo do Galo Reprodução multimédia (áudio e vídeo) Acesso em tempo real a diferentes taxas de câmbio Acesso a serviços de meteorologia Jogo de videopóquer

Sugerimos também a resolução dos exercícios propostos, que são apresentados no final dos capítulos; nesta fase, aconselhamos que os resolva com recurso à consulta do livro e das dicas apresentadas no “Anexo – Ajuda à Resolução dos Exercícios Propostos”, disponível em www.fca.pt (até o livro se esgotar ou ser publicada nova edição atualizada ou com alterações), e que depois compare os seus resultados com as soluções que disponibilizamos também na página do livro em www.fca.pt (nos mesmos moldes).

CONVENÇÕES Associado a esta estrutura criou-se um conjunto de convenções com o objetivo de facilitar a compreensão das matérias. CÓDIGO Todos os excertos de código são apresentados no mesmo formato, sendo frequente a junção de um comentário adicional a cinza: string nome; //Declaração de uma variável

ANÁLISE Interpretação teórica de um bloco de código e explicação do seu objetivo. D I C AS Sempre que aparecer esta apresentação gráfica, isso significa que são fornecidas ao leitor dicas, isto é, informações úteis e complementares sobre a matéria que, essencialmente, permitem tornar as tarefas mais fáceis.

NOTAS Sempre que necessário, aparecem pequenas notas com descrição complementar à matéria tratada nessa secção, com o objetivo de fornecer ao leitor esclarecimentos adicionais, embora não essenciais, sobre a matéria. © FCA – Editora de Informática


COMO UTILIZAR ESTE LIVRO

XV

EQUIVALÊNCIA INGLÊS/PORTUGUÊS DE COMANDOS E TERMOS É utilizada a edição Community do Visual Studio em Inglês como base de trabalho, mas o livro adapta-se também aos utilizadores da versão em Português do Brasil. Os comandos e termos ingleses são apresentados a negrito e precedidos dos respetivos nomes em Português do Brasil entre parênteses curvos, como por exemplo: File (Arquivo)  New Project (Novo Projeto)

GLOSSÁRIO DE TERMOS – PORTUGUÊS EUROPEU/PORTUGUÊS DO BRASIL Para facilitar a interpretação do texto por parte dos leitores brasileiros, incluímos um glossário dos principais termos correspondentes em Português do Brasil que, embora não estejam presentes na interface de utilizador do Visual Studio, são utilizados pelo Autor na explicação das matérias. Este glossário pode ser consultado no final do livro.

CONTACTAR O AUTORi No sentido de proporcionar aos leitores uma ferramenta complementar ao conhecimento transmitido através desta obra, o Autor disponibiliza-se a ser contactado para auxiliar os leitores a ultrapassarem eventuais dificuldades que sintam na interpretação das matérias abordadas e/ou na resolução dos variados exercícios apresentados ao longo deste livro. Assim, e com o objetivo de facilitar a resposta por parte do Autor, agradecemos que considere os pontos que se seguem aquando do seu contacto: 

Identifique o nome da obra (Android com C# - Introdução ao Desenvolvimento);

Verifique se, porventura, existirá uma errata disponível na página do livro em www.fca.pt;

Indique os números de capítulo e página, caso o seu pedido de informação esteja diretamente relacionado com o conteúdo do livro;

Especifique a edição do Visual Studio que está a utilizar (por exemplo, Community, Enterprise ou outra);

Proceda ao envio dos ficheiros referentes ao(s) seu(s) projeto(s), se aplicável;

Inclua capturas de ecrã com as mensagens de erro, se for o caso.

Todos os pedidos de esclarecimento, assim como eventuais sugestões, poderão ser enviados diretamente para o endereço do Autor: loureirohenrique@hotmail.com.

i

Este serviço é da responsabilidade do Autor e pode deixar de existir sem aviso prévio. © FCA – Editora de Informática


© FCA – Editora de Informática


7

PROJETO I

2

Neste capítulo iremos desenvolver uma aplicação de caráter educativo que deve ser capaz de receber um número compreendido entre 1 e 99 (em numeração árabe) e de devolvê-lo em numeração romana. Será utilizado o template Blank App do grupo Android.

7.1

DESENVOLVIMENTO DA INTERFACE

Iremos recorrer a um layout tabelar com botões para a introdução de dígitos (controlos Button) e dois mostradores (controlos TextView), um para a apresentação do número em árabe e outro para o equivalente em numeração romana. Para além disto, deverá ser adicionado um ícone à subpasta drawable da pasta Resources para que a imagem seja devidamente aplicada ao botão de imagem (controlo ImageButton), o qual permite corrigir os dígitos inseridos pelos utilizadores. No final, deverá obter a interface gráfica que apresentamos na Figura 7.1.

FIGURA 7.1 – Projeto I (interface)

CÓDIGO (MAIN.AXML) <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" © FCA – Editora de Informática


116

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO

android:stretchColumns="6"> <TableRow> <TextView android:id="@+id/textViewAtual" android:layout_column="1" android:layout_span="5" android:layout_marginBottom="20dp" android:textSize="30dp" android:textColor="@android:color/black" android:background="@android:color/white" /> </TableRow> <TableRow> <Button android:id="@+id/button1" android:layout_column="1" android:text="1" /> <Button android:id="@+id/button2" android:layout_column="2" android:text="2" /> <Button android:id="@+id/button3" android:layout_column="3" android:text="3" /> <Button android:id="@+id/button4" android:layout_column="4" android:text="4" /> <Button android:id="@+id/button5" android:layout_column="5" android:text="5" /> </TableRow> <TableRow> <Button android:id="@+id/button6" android:layout_column="1" android:text="6" /> <Button android:id="@+id/button7" android:layout_column="2" android:text="7" /> <Button android:id="@+id/button8" android:layout_column="3" android:text="8" /> © FCA – Editora de Informática


PROJETO I

117

<Button android:id="@+id/button9" android:layout_column="4" android:text="9" /> <Button android:id="@+id/button0" android:layout_column="5" android:text="0" /> </TableRow> <TableRow> <ImageButton android:id="@+id/buttonApagar" android:layout_column="4" android:layout_span="2" android:src="@drawable/deletered" android:layout_height="70dip" android:scaleType="centerInside" /> </TableRow> <TableRow> <TextView android:id="@+id/textViewResultado" android:layout_column="1" android:layout_span="5" android:textSize="30dp" android:textColor="@android:color/black" android:background="@android:color/white" android:layout_marginTop="20dp" /> </TableRow> </TableLayout>

ANÁLISE A interface gráfica foi implementada com recurso a um layout em tabela composto por sete colunas (atributo StretchColumns igualado a 6), sendo que a primeira (a de índice 0) e a última (a de índice 7) representam um artifício para as margens, respetivamente, da esquerda e da direita do layout. As linhas ocupadas pelos controlos da categoria TextView foram unidas por especificação do atributo layout_span, assim como a linha que abrange o botão de imagem. CÓDIGO (MAINACTIVITY.CS) //Namespaces using Android.App; using Android.Widget; using Android.OS; © FCA – Editora de Informática


118

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO

namespace ProjetoI { [Activity(Label = "ProjetoI", MainLauncher = true, Icon = "@drawable/icon")] public class MainActivity : Activity { protected override void OnCreate(Bundle bundle) { //Implementação do layout base.OnCreate(bundle); SetContentView(Resource.Layout.Main); //Identificação dos objetos TextView textViewAtual = FindViewById<TextView>(Resource.Id.textViewAtual); TextView textViewResultado = FindViewById<TextView>(Resource.Id.textViewResultado); Button button1 = FindViewById<Button>(Resource.Id.button1); Button button2 = FindViewById<Button>(Resource.Id.button2); Button button3 = FindViewById<Button>(Resource.Id.button3); Button button4 = FindViewById<Button>(Resource.Id.button4); Button button5 = FindViewById<Button>(Resource.Id.button5); Button button6 = FindViewById<Button>(Resource.Id.button6); Button button7 = FindViewById<Button>(Resource.Id.button7); Button button8 = FindViewById<Button>(Resource.Id.button8); Button button9 = FindViewById<Button>(Resource.Id.button9); Button button0 = FindViewById<Button>(Resource.Id.button0); ImageButton buttonApagar = FindViewById<ImageButton>(Resource.Id.buttonApagar); //Eventos dos botões button1.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button1.Text; Romano(); } }; button2.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button2.Text; Romano(); © FCA – Editora de Informática


PROJETO I

119

} }; button3.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button3.Text; Romano(); } }; button4.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button4.Text; Romano(); } }; button5.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button5.Text; Romano(); } }; button6.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button6.Text; Romano(); } }; button7.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button7.Text; Romano(); } © FCA – Editora de Informática


120

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO }; button8.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button8.Text; Romano(); } }; button9.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button9.Text; Romano(); } }; button0.Click += delegate { if (textViewAtual.Text.Length != 2) { textViewAtual.Text = textViewAtual.Text + button0.Text; Romano(); } }; buttonApagar.Click += delegate { if (textViewAtual.Text.Length == 2) { textViewAtual.Text = textViewAtual.Text.Substring(0, 1); Romano(); } else { textViewAtual.Text = null; textViewResultado.Text = null; } }; }

© FCA – Editora de Informática


PROJETO I

121

//Conversão de numeração árabe para numeração romana private void Romano() { //Identificação dos objetos TextView textViewAtual = FindViewById<TextView>(Resource.Id.textViewAtual); TextView textViewResultado = FindViewById<TextView>(Resource.Id.textViewResultado); string numString = int.Parse(textViewAtual.Text).ToString("00"); int dezenas = int.Parse(numString.Substring(0, 1)); int unidades = int.Parse(numString.Substring(1, 1)); string romano1, romano2; //Avaliação (dezenas) if (dezenas == 1) { romano1 = "X"; } else if (dezenas == 2) { romano1 = "XX"; } else if (dezenas == 3) { romano1 = "XXX";} else if (dezenas == 4) { romano1 = "XL"; } else if (dezenas == 5) { romano1 = "L"; } else if (dezenas == 6) { romano1 = "LX"; } else if (dezenas == 7) { romano1 = "LXX"; } else if (dezenas == 8) { romano1 = "LXXX"; } else if (dezenas == 9) { romano1 = "XC"; } else { romano1 = ""; } //Avaliação (unidades) if (unidades == 1) { romano2 = "I"; } else if (unidades == 2) { romano2 = "II"; } else if (unidades == 3) { romano2 = "III"; } else if (unidades == 4) { romano2 = "IV"; } else if (unidades == 5) { romano2 = "V"; } else if (unidades == 6) { romano2 = "VI"; } else if (unidades == 7) { romano2 = "VII"; } else if (unidades == 8) { romano2 = "VIII"; } else if (unidades == 9) { romano2 = "IX"; } else { romano2 = ""; } textViewResultado.Text = romano1 + romano2; } } }

© FCA – Editora de Informática


122

ANDROID COM C# – INTRODUÇÃO AO DESENVOLVIMENTO ANÁLISE

O valor introduzido por parte do utilizador é verificado em função do número de carateres (atributo Length), de maneira a ser respeitado o intervalo de valores enunciados (entre 1 e 99). A conversão do número árabe para romano foi conseguida, numa primeira fase, através da utilização da função Substring, de forma a separar as dezenas das unidades, e depois pela equivalência ao tipo de numeração romana, através de duas estruturas else if.

7.2

EXERCÍCIOS PROPOSTOS 1) Amplie o projeto desenvolvido neste capítulo, de maneira a que o utilizador possa introduzir valores até 999; 2) Considerando o exercício anterior, substitua o controlo TextViewResultado por controlos ImageView, onde cada símbolo romano deverá corresponder a uma imagem.

© FCA – Editora de Informática


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.