domingo, 22 de abril de 2012

Programar para Android - 06

Try04 - Um botão com ação.

Vamos começar por criar um novo projeto Try04, em que retiramos a mensagem de "Hello World".
Neste projeto vamos criar um botão com o id btButton que ocupe toda a área disponível do ecrã, ou seja, com FILL_PARENT na altura e na largura.
Tal como antes, temos o layout concluído, mas o programa não faz nada.
A ideia é que o botão apresente uma mensagem, quando for clicado mude para uma segunda mensagem e ao ser clicado de novo volte à primeira mensagem.
Vamos então criar duas strings em strings.xml, uma com o id btText e valor Clica-me e outra com id btTextClicked e valor Fui clicado.
Agora vamos ao código.


package pt.omeusite.try04;


import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

Os imports são feitos automaticamente pelo Eclipse, com o Ctrl+Shift+O.

public class Try04Activity extends Activity implements OnClickListener {

A atividade vai implementar a interface OnClickListener, para poder processar os clicks no botão. É possível definir uma nova classe ou uma subclasse para processar os clicks, mas é mais simples fazer que a atividade implemente o interface, pois apenas implica que tenha um método onClick().
Vamos precisar de um objeto do tipo Button e de uma variável inteira, para guardar o estado do botão.

Button btButton;
int status = 0;

/** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

Começamos o código "a sério" por definir o objeto btButton. O objeto já foi definido no layout em main.xml, por isso agora apenas dizemos para ir buscar o objeto com o id btButton aos recursos.
De seguida definimos a própria atividade (this) como listener dos clicks.

        btButton = (Button) findViewById(R.id.btButton);
        btButton.setOnClickListener(this);
    }

O método que processa os clicks é este. Apenas muda o estado e define o texto do botão de acordo com esse estado.

    public void onClick(View v) {
    status = 1 - status;
    if (status==1)
    btButton.setText(R.string.btTextClicked);
    else
    btButton.setText(R.string.btText);
    }
}

E finalmente um programa que reage a alguma coisa.

Sem comentários:

Enviar um comentário