O que são os widgets ? Os widgets são os componentes que compõem
uma aplicação Android, como o TextView, um Button, um EditText , um
RadioButton e etc.
Desenvolvendo uma aplicação que soma números
Vamos criar agora uma aplicação que faça uso de um desses widgets. Crie
um novo projeto Android com os seguintes dados:
Project Name: ProjetoSoma
Package Name : com.android.appsoma
Activity Name: AppSoma
Application Name: Soma Números
Criado o projeto, vamos no arquivo main.xml desse projeto. Pelo nome do
projeto, podemos ver que essa aplicação é uma aplicação de calculo. Essa
aplicação vai ler dois números inteiros e no final, irá mostrar a soma deles,
simples.
Vamos no arquivo main.xml desse projeto e vamos fazer as seguintes
modificações. Quero que você copie e cole o abaixo e coloque no arquivo
main.xml.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Digite o primeiro número"
/>
<EditText
android:id="@+campo/num1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Digite o segundo número"
/>
<EditText
android:id="@+campo/num2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Resultado"
/>
<EditText
android:id="@+campo/res"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<Button
android:id="@+botao/btmostrar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Mostrar"
/>
</LinearLayout>
Bom, vamos a explicação do código acima. Observem que possuo uma
TextView com o título “Digite o primeiro número”. Logo abaixo dela , eu possuo
uma widget do tipo EditText, que exibe um campo onde vou digitar o número.
Essa widget possui uma propriedade chamada android:id, que serve para dar
nome ao componente, ou seja, funciona como um identificador daquele
componente.
O nome de um widget, deve estar nesse formato:
“@+<nome>/<nome>”
Se observamos, o valor desse atributo é : “@+campo/num1”. É como se
“campo” representasse um grupo e “num1” representasse o nome do
componente. Você irá entender essa notação mais a frente.
Abaixo dessa widget, temos outra do tipo TextView com o título “Digite o
segundo número”. Depois temos um outro widget do tipo EditText, cujo nome é:
Abaixo dessa widget, temos um terceiro TextView com o título “Resultado”.
Depois temos um outro widget do tipo EditText, cujo nome é: “@+campo/res”.
Por último, temos uma widget do tipo Button, cuja finalidade é mostrar um
botão para podermos clicá-lo. Ele possui um título com o valor “Mostrar” e seu
nome é: “@+botao/btmostrar”.
Beleza, agora vamos abrir o código do arquivo AppSoma.java, para
acessar via código Java, os componentes que adicionamos via XML. Siga os
passos aqui descritos para você como esse processo é feito. Após a linha
import
android.os.Bundle;
Digite:
import
android.widget.*;
import
android.view.*;
Antes da linha:
@Override
Digite:
EditText ednum1,ednum2,edres;
Agora vamos a explicação do código acima. Como você pode ver , os
widgets também podem ser usados no nosso código Java. Se no código XML
eu possuir um widget do tipo EditText, para acessar esse componente pelo
Java, é preciso fazer uso da classe EditText. Cada widget no XML possui o seu
respectivo em classe Java, logo, se possui um widget Button, para acessa-lo
devo fazer uso da classe Button e assim vai.
Agora, após a linha:
setContentView(R.layout.main);
Digite as seguintes linhas de código:
ednum1 = (EditText) findViewById(R.campo.num1);
ednum2 = (EditText) findViewById(R.campo.num2);
edres = (EditText) findViewById(R.campo.res);
Button btMostrar = (Button) findViewById(R.botao.btmostrar);
Agora vou explicar as linhas acima. A linha:
EditText ednum1 = (EditText) findViewById(R.campo.num1);
Faz referência ao primeiro EditText, através do método “findViewById” com
o parâmetro “R.campo.num1”.
Ah, se lembra o nome da primeira EditText que está no código XML? Ela
se chama “@+campo/num1”.
Vamos entender, observe que para fazer referência ao EditText pelo
método “findViewById” eu passei o parâmetro R.campo.num1.
Já na segunda linha, para fazer a referência à segunda EditText, cujo
nome é “@+campo/num2”, pelo método “findViewById”, passei o parâmetro
R.campo.num2.
Como você pode ver, estou fazendo uso da classe R, que funciona como
interface entre o código Java e o arquivo XML.
O procedimento é o mesmo tanto para o terceiro EditText e o Button.
Agora iremos adicionar um evento Click, no nosso Button, pois quando eu
clicar no botão, ele deverá mostrar a soma dos números. Então, logo após a
linha:
Button btMostrar = (Button) findViewById(R.botao.btmostrar);
Digite:
btMostrar.setOnClickListener(
new View.OnClickListener(){
public void
onClick(View arg0) {
double
num1 = Double.parseDouble(ednum1.getText().toString());
double
num2 = Double.parseDouble(ednum2.getText().toString());
double
edres.setText(String.
}
});
Toda vez que eu clicar no botão, ele irá mostrar o resultado na terceira
EditText referente ao resultado da soma. Ótimo! Vamos executar a nossa aplicação ? Para executar faça os mesmos procedimentos que já mostrei.
Irei descrever o código do evento Click. O método “setOnClickLisneter”
serve para definir um evento de Click a um componente. Como parâmetro,
criamos uma instância de OnClickListener e dentro dessa instância existe o
método chamado “onClick”, que será disparado toda vez que o botão for clicado.
A linha:
double
num1 = Double.parseDouble(ednum1.getText().toString());
Cria uma variável chamada num1 e atribui a ela o valor que está contido
em num1. Eu faço uso do método
conteúdo é uma String. Observem que chamo o método “getText” de
parseDouble da classe Double pois oednum1
para retornar o conteúdo. Diferente de muitos métodos de retorno de String,
esse método “getText” não retorna uma String, mais sim um tipo chamado
“
retornasse uma string. A descrição da próxima linha e a mesma.
A linha:
Editable”. Por isso, chamei o método toString de getText para que meedres.setText(String.
Retorna para a terceira EditText referenciada por
valores. Isso é possível chamado o método setText, como o resultado está num
tipo
conversão desse valor através do método
Beleza! Com esse conhecimento obtido até agora, você já tem capacidade
para fazer uma aplicação básica em Android.
Bom , ainda temos muitos mais pela frente.edres, a soma dosdouble e setText aceita somente parâmetros do tipo String e Editable, fiz avalueOf da classe String.valueOf(res));res = num1 + num2;valueOf(res));
Nenhum comentário:
Postar um comentário