TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS Uma activity é um componente do aplicativo que fornece uma tela com o qual os usuários podem interagir. Uma aplicação geralmente consiste de múltiplas activities, que estão ligeiramente interligadas entre si. Cada activity pode iniciar outra atividade a fim de executar ações diferentes. Cada vez que uma nova activity inicia-se, a anterior é parada, mas o sistema a preserva em uma pilha. Quando uma activity é interrompida porque uma nova activity é iniciada, ocorre uma notificação sobre essa mudança de estado através de métodos de retorno de chamada do ciclo de vida de uma activity. Essas transições de estado fazem parte do ciclo de vida de uma activity, representado na figura abaixo: Ciclo de Vida de uma Activity A classe Activity define os seguintes retornos, ou seja, eventos. Não é necessário implementar todos os métodos callbacks. No entanto, é importante entender cada um e implementar os métodos que asseguram que o aplicativo se comporte da maneira como os usuários esperam. Callback oncreate() onstart() onresume() onpause() Descrição Este é o primeiro retorno de chamada, é chamado quando a activity é criada pela primeira vez. Este callback é chamado quando a activity se torna visível para o usuário. É chamado quando o usuário começa a interagir com o aplicativo. A atividade de pause não recebe entrada do
onstop() ondestroy() onrestart() usuário e não pode executar qualquer código, é chamado quando a activity atual está sendo pausada e a activity anterior está sendo retomada. Chamado quando a activity não é mais visível. Chamada de retorno antes que a activity seja destruída pelo sistema. Este callback é chamado quando a activity é reiniciada após ter sido parada. A seguir, um exemplo de código com os métodos de ciclo de vida fundamentais:
Quando uma aplicação é executada, a activity defina como padrão (na criação do projeto) é lançada. Para executar outras activities, basta usar as funções staractivity() e startactivityforresult(). Quando uma activity terminar a sua execução, a função onactivityresult() será chamada, com o resultado como parâmetro. A função setresult() define o resultado a ser lido pela activity que a chamou. A maneira mais comum para definir o layout de uma activity é com um arquivo de layout XML salvo nos recursos da aplicação. Dessa forma, pode-se manter o design de interface do usuário separadamente do código-fonte que define o comportamento da activity. A definição dos componentes do layout da interface do usuário para a activity ocorre com setcontentview(), passando o ID do recurso para o layout. É necessário declarar a activity no arquivo manifest para que ela seja acessível ao sistema, adicionando um < activity> como um elemento filho de <application>. Editando a Interface Após criar um novo Android Aplication Project, o editor gráfico da tela principal será aberto. No android é possível editar as telas tanto pelo editor gráfico quanto alterando diretamente o XML que descreve o layout.
O android organiza suas telas em estruturas básicas chamadas layout. São eles que definem como os componentes menores (campos de texto e botões, por exemplo) serão organizados. Existem vários tipos de layout, cada um com sua forma e propriedades, que podem ser combinados para forma a tela de acordo com o desejado. Com a tela pronta, precisamos implementar um código para controlá-la. Um layout define a estrutura visual básica para a interface do usuário, tais como a interface do usuário para uma activity ou widget app. Usando o vocabulário XML do android, você pode rapidamente criar layouts de interface do usuário e os elementos da tela. Cada arquivo de layout deve conter exatamente um elemento raiz, que deve ser um objeto View ou ViewGroup. Depois de definir o elemento raiz, você pode adicionar objetos adicionais ou widgets como elementos filho para construir gradualmente uma hierarquia View que define o layout. Por exemplo, aqui está um esquema XML que usa LinearLayout para criar um TextView e um Button:
Cada arquivo de layout XML é compilado em uma View de recursos. É necessário carregar o recurso de layout do seu código de aplicação em sua implementação de retorno de chamada Activity.onCreate(). Cada objeto View e ViewGroup oferece suporte a sua própria variedade de atributos XML. Alguns atributos são específicos para um objeto de exibição (por exemplo, TextView suporta o atributo textsize), mas esses atributos também são herdados por qualquer objeto que se estender a esta classe. Alguns são comuns a todos os objetos View, porque são herdados da classe raiz View (como o atributo id). E outros atributos são considerados parâmetros de layout, que são atributos que descrevem determinadas orientações de layout do objeto View, conforme definido pelo objeto pai ViewGroup desse atributo. Qualquer objeto View pode ter um ID inteiro associado a ele, para identificar exclusivamente o View. Quando ocorre a compilação, este ID é referenciado com um inteiro, mas o ID é tipicamente atribuído no arquivo XML de layout como uma string no atributo id. A sintaxe para um ID, dentro de uma tag XML é: O símbolo @ no início da string indica que o analisador XML deve analisar e ampliar o
resto da cadeia ID e identificá-lo como um recurso de identificação. O símbolo + significa que este é um novo nome de recurso que deve ser criado e adicionado. Atributos de layout XML nomeados layout_something definem parâmetros para o modo de exibição que são apropriados para o ViewGroup em que ele reside. Cada classe ViewGroup implementa uma classe aninhada ViewGroup.LayoutParams. Esta subclasse contém os tipos de propriedades que definem o tamanho e a posição de cada View filho. O grupo View pai define parâmetros de layout para cada View fiho. Visualização de uma hierarquia View com parâmetros de layout Cada subclasse da classe ViewGroup fornece uma maneira de apresentar os layouts. Abaixo estão alguns dos tipos de layout mais comuns que são construídos na plataforma Android.
Vamos iniciar a programação com Android. Você deve se certificar de que a configuração de seu ambiente de desenvolvimento Android está como foi proposto pelo tutorial SDK Android. Utilizaremos como exemplo a aplicação Hello World. Criar Aplicativo para Android O primeiro passo é criar um novo Projeto Android. Siga a opção File New Android Aplication Project. Defina o nome de seu projeto com HelloWorld usando a seguinte janela de assistente: Em seguida, siga as instruções fornecidas e mantenha todas as outras entradas como padrão até a etapa final. Uma vez que seu projeto é criado com sucesso, você terá a tela do seguinte protótipo:
Antes de executar o aplicativo, você deve observar alguns diretórios e arquivos do projeto Android:
O código principal da activity é a classe MainActivity.java. A seguir está o código padrão gerado pela aplicação: res/layout. R.layout.activity_main se refere ao arquivo activity_main.xml localizado na pasta Seja qual for a componente que se desenvolver como parte do seu aplicativo, você deve declarar todos os seus componentes em um arquivo manifest chamado AndroidManifest.xml. Esse arquivo funciona como uma interface entre sua aplicação e o sistema operacional android. Exemplo de um arquivo manifest: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.helloworld" android:versioncode="1" android:versionname="1.0" > <uses-sdk android:minsdkversion="8" android:targetsdkversion="15" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/apptheme" > <activity android:name=".mainactivity" android:label="@string/title_activity_main" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher"/> </intent-filter> </activity> </application> </manifest>
O arquivo string.xml localizado em res/values contém todo o texto que o aplicativo usa. Por exemplo, nome de botões, textos. Esse arquivo é responsável pelo conteúdo textual. Exemplo: O activity_main.xml é um arquivo de layout que é referenciado pela sua aplicação na construção de sua interface. Você deve modificá-lo para alterar o layout de sua aplicação. Exemplo: Executando a sua aplicação Para executar o aplicativo no Eclipse clique no ícone na barra de ferramentas. Crie um AVD (Android Virtual Device Manager) tutorial abaixo - e se suas configurações estiverem corretas o Eclipse irá exibir a seguinte janela de emulador:
Criando um AVD Device: 1. Abra o SDK Manager (Caso você já tenha instalado o SDK), e selecione a opção Virtual 2. Seleciona a opção New
3. Digite o nome (sem espaço) e em seguida selecione a versão do Android, conforme a imagem abaixo: Defina suas configurações opcionais, clique em Create AVD, seu dispositivo será criado e estará pronto para emular sua aplicação Android em seu computador.