quinta-feira, 15 de março de 2012

Usando Widgets


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 me
edres.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