Livro 1 - Meu primeiro aplicativo
6. Atribuindo uma ação ao botão
Inicialmente ao se clicar no botão do aplicativo nada irá acontecer. Isso se deve ao fato que nenhuma ação foi programada para ser executada. Para atribuir uma ação a um botão devemos ir no arquivo MainActivity.java e adicionar ao elemento Button um código para ser executado. Ação que será executa usará uma instância da classe Toast para mostrar uma mensagem simples na tela.
Também para fins de internacionalização abra o arquivo strings.xml e adicione o campo welcomeToast:
<resources>
<string name="app_name">Meu app</string>
<string name="welcome">Bem vindo ao meu app</string>
<string name="welcomeButtonText">Enviar mensagem</string>
<string name="welcomeToast">Bem-vindo!</string>
</resources>
Agora, complete o código da classe MainActivity.java com:
package br.com.bcalegaro.meuapp;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button welcomeButton = findViewById(R.id.welcomeButton);
welcomeButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
//inicializa as informações necessárias para criar uma mensagem Toast
Context contexto = MainActivity.this;
CharSequence mensagem = getResources().getString(R.string.welcomeToast);
int duracao = Toast.LENGTH_SHORT;
//cria uma mensagem Toast com as informações acima
Toast myToast = Toast.makeText(contexto, mensagem, duracao);
//manda mostrar a mensagem Toast
myToast.show();
}
});
}
}
Primeiramente, devem ser incluídos diversos pacotes nativos do Android para o uso dos componentes. Normalmente essa tarefa é automática pois o Android Studio deduz ao digitar o código quais pacotes devem ser importados. A tecla de atalho ALT+ENTER pode ser usada para ativar a importação automática.
A principal parte do código está na função onCreate pois é nessa função que devemos configurar todos os componentes de uma Activity. Obtemos uma instância do componente Button da tela do aplicativo através do método findViewById. Esse método recebe como parâmetro o valor de referência do botão disponibilizado pela classe R. A classe R é a forma de acessar os recursos alocadas ao projeto, como por exemplo, identificados, strings, cores, etc.
Uma vez obtida a instância do botão na tela, o mesmo deve ser atribuído uma ação. A linha 18 configure o botão para usar um tratamento de eventos onClickListener das Views. Esse tratamento de eventos é o responsável por “escutar” quando o botão é pressionado e assim, disparar o método onClick. Logo, é no método onClick que deve ser programado a ação que o botão deve fazer.
Nesse aplicativo vamos fazer com o botão dispare uma Toast com uma mensagem de boas-vindas. Essa mensagem é um recurso configurado no arquivo strings.xml logo precisa do código da linha 22 para obter o valor do recurso welcomeToast. A seguir, executa-se o código que dispara uma Toast no contexto atual da aplicação (tela atual), com a mensagem de boas-vindas e uma duração curta (valor esse, pré-definido pela classe Toast).
Figura 35. Execução do aplicativo mostrando uma mensagem Toast
Rode a aplicação novamente com a nova funcionalidade implementada. Ao se clicar no botão, uma mensagem de boas vindas vai aparecer na tela e, logo em seguida, desaparecer.