Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof: Ricardo Quintão email: ricardo.quintao@uva.br Site: www.rgquintao.com.br Criando um Projeto Android Vamos agora criar o nosso segundo projeto Android. Neste projeto usaremos um botão para ativar uma ação. A aplicação solicitará que o usuário digite um texto e após apertar o botão, este mesmo texto será escrito na tela. O objetivo da aplicação é de conhecermos o recurso Listeners (ouvintes). Os Listeners possibilitam que certos eventos sejam capturados e então tratados. No nosso caso, queremos escutar um click no botão para então continuar com o processamento. O processamento se limitará a pegar o texto que foi digitado em uma das Views (EditText) e copiá-lo para outra View (TextView). Criando um Projeto Android Criem um novo projeto seguindo os mesmos passos realizados no projeto anterior e nomeiem o projeto, por exemplo, como “Mensagem2”. Será criado um novo projeto igual ao anterior que escreve na tela a mensagem “Hello world”. Vamos começar a fazer algumas alterações no arquivo de layout que no meu exemplo se chama “tela1.xml”. Primeiramente vamos mudar o tipo de layout. O layout atual é o “RelativeLayout”. Mudaremos para “LinearLayout”. Não se esqueça de mudar no final do arquivo o fechamento também para “LinearLayout”. Nos parâmetros do “LinearLayout”, acrescente o parâmetro android:orientation = “vertical”. O objetivo deste parâmetro é de informar que os objetos visuais (Views) serão alinhados verticalmente, isto é, colocados um embaixo do outro. O arquivo tela1.xml deve estar semelhante ao apresentado ao lado. Na linha 1 e na linha 18, mudamos para “LinearLayout”. Na linha 4 acrescentamos o parâmetro de orientação. Criando um Projeto Android tela1.xml 1: <LinearLayout 2: xmlns:android="http://schemas.android.com/apk/res/android" 3: xmlns:tools="http://schemas.android.com/tools" 4: android:orientation="vertical" 5: android:layout_width="match_parent" 6: android:layout_height="match_parent" 7: android:paddingBottom="@dimen/activity_vertical_margin" 8: android:paddingLeft="@dimen/activity_horizontal_margin" 9: android:paddingRight="@dimen/activity_horizontal_margin" 10: android:paddingTop="@dimen/activity_vertical_margin" 11: tools:context="com.example.mensagem2.Activity_tela1" > 12: 13: <TextView 14: android:layout_width="wrap_content" 15: android:layout_height="wrap_content" 16: android:text="@string/hello_world" /> 17: 18: </LinearLayout> Modificaremos agora as Views do arquivo “tela1.xml” para que fique como a da listagem ao lado. Na linha 13 temos uma TextView. É a mesma que continha o “Hello world”. Ela foi editada mudando o conteúdo de texto na linha 16, como mostra a listagem. Acrescente as demais Views como na listagem ao lado. As três últimas Views possuem o parâmetro “android:id”. Este parâmetro é utilizado para dar uma identificação à View, possibilitando o seu tratamento no programa java. tela1.xml 13: <TextView 14: android:layout_width="wrap_content" 15: android:layout_height="wrap_content" 16: android:text="Entre com o texto a ser exibido:" /> 17: 18: <EditText 19: android:id="@+id/et_Texto" 20: android:layout_width="match_parent" 21: android:layout_height="wrap_content" /> 22: 23: <Button 24: android:id="@+id/bt_exibir" 25: android:layout_width="match_parent" 26: android:layout_height="wrap_content" 27: android:text="Exibir Texto" /> 28: 29: <TextView 30: android:id="@+id/tv_Texto" 31: android:layout_width="wrap_content" 32: android:layout_height="wrap_content" 33: android:layout_marginTop="20dp" 34: android:text="Aqui reproduziremos seu texto." /> 35: 36: </LinearLayout> Criando um Projeto Android Modificaremos agora o arquivo “Activity_tela1.java”. Após retirarmos o excedente que não nos interessa, como fizemos no exemplo anterior, o arquivo deve estar semelhante ao da listagem ao lado. Nossa primeira mudança será acrescentar as variáveis que representarão os objetos das nossas Views, que serão criados na apresentação da tela. Estas Views são as que definimos no arquivo “tela1.xml” com uma identificação através do parâmetro android:id = “ ”. Activity_tela1.java 1: package com.example.mensagem; 2: 3: import android.app.Activity; 4: import android.os.Bundle; 5: 6: public class Activity_tela1 extends Activity { 7: 8: @Override 9: protected void onCreate(Bundle savedInstanceState) { 10: super.onCreate(savedInstanceState); 11: setContentView(R.layout.tela1); 12: } 13: 14: } Criando um Projeto Android Estas variáveis estão declaradas nas linhas 10 até 12. Também tivemos que importar algumas classes necessárias, como vemos nas linhas 5 e 6. Apesar de já termos criado as variáveis dos objetos da tela, eles ainda não possuem o endereço do objeto que eles representarão. Para isso, temos que utilizar o comando “findViewById(R.id.nome)”. Este comando consulta o arquivo R.java, na classe id e recupera a identificação do objeto. Activity_tela1.java 1: package com.example.mensagem; 2: 3: import android.app.Activity; 4: import android.os.Bundle; 5: import android.view.View; 6: import android.widget.*; 7: 8: public class Activity_tela1 extends Activity { 9: 10: EditText et_Texto; 11: TextView tv_Texto; 12: Button bt_Exibir; 13: 14: @Override 15: protected void onCreate(Bundle savedInstanceState) { 16: super.onCreate(savedInstanceState); 17: setContentView(R.layout.tela1); 18: } 19: 20: } Criando um Projeto Android Nas linhas 19 a 21 temos o uso deste comando para atribuir os ponteiros dos objetos as suas respectivas variáveis. O “findViewById( )” retorna um ponteiro de tipo View genérico. Devemos usar um “cast” para poder transforma-lo no tipo correto de View. A partir de agora, nós já temos os ponteiros para os objetos View, podendo então manipulá-los. O processamento se dará após o pressionamento do botão “Exibir”, que está acessível através do objeto “bt_Exibir”. Activity_tela1.java 8: public class Activity_tela1 extends Activity { 9: 10: EditText et_Texto; 11: TextView tv_Texto; 12: Button bt_Exibir; 13: 14: @Override 15: protected void onCreate(Bundle savedInstanceState) { 16: super.onCreate(savedInstanceState); 17: setContentView(R.layout.tela1); 18: 19: et_Texto = (EditText) findViewById(R.id.et_Texto); 20: tv_Texto = (TextView) findViewById(R.id.tv_Texto); 21: bt_Exibir = (Button) findViewById(R.id.bt_exibir); 22: } 23: 24: } Criando um Projeto Android Para sabermos se este botão foi pressionado, devemos invocar o seu método “setOnClickListener(View)”. Ao invocar este método, nós estamos cadastrando no gerenciador de eventos do Android o objeto “View.OnClickListener( )”. Quando um click neste botão for detectado, o gerenciador de eventos executará o método “onClick( )”, na linha 26, definido no objeto “View.OnClickListener( )” que é passado como parâmetro. O método “onClick( )” deve possuir o código do processamento desejado. Criando um Projeto Android Activity_tela1.java 14: @Override 15: protected void onCreate(Bundle savedInstanceState) { 16: super.onCreate(savedInstanceState); 17:setContentView(R.layout.tela1); 18: 19: et_Texto = (EditText) findViewById(R.id.et_Texto); 20: tv_Texto = (TextView) findViewById(R.id.tv_Texto); 21: bt_Exibir = (Button) findViewById(R.id.bt_exibir); 22: 23: bt_Exibir.setOnClickListener(new View.OnClickListener() { 24: 25: @Override 26: public void onClick(View v) 27: { 28: String texto = et_Texto.getText().toString(); 29: tv_Texto.setText(texto); 30: } 31: }); 32: } 33: } No nosso caso, é retirado o texto do objeto “et_Texto” e atribuído à variável texto, na linha 28. Como o método “getText( )” retorna um objeto de um tipo interno do Android, é preciso convertê-lo para uma String usando o método “toString()” deste objeto. Por último, passamos este texto como parâmetro do método “setText( )” do objeto “tv_Texto”. Após a execução deste método, o texto é apresentado na tela. Activity_tela1.java 14: @Override 15: protected void onCreate(Bundle savedInstanceState) { 16: super.onCreate(savedInstanceState); 17: setContentView(R.layout.tela1); 18: 19: et_Texto = (EditText) findViewById(R.id.et_Texto); 20: tv_Texto = (TextView) findViewById(R.id.tv_Texto); 21: bt_Exibir = (Button) findViewById(R.id.bt_exibir); 22: 23: bt_Exibir.setOnClickListener(new View.OnClickListener() { 24: 25: @Override 26: public void onClick(View v) 27: { 28: String texto = et_Texto.getText().toString(); 29: tv_Texto.setText(texto); 30: } 31: }); 32: } 33: } Criando um Projeto Android Prof: Ricardo Quintão email: ricardo.quintao@uva.br Site: www.rgquintao.com.br
Compartilhar