Você está na página 1de 14

DESENVOLVIMENTO

PARA DISPOSITIVOS
MÓVEIS

Fabiano Berlinck Neumann


Alertas e a classe Toast
Objetivos de aprendizagem
Ao final deste texto, você deve apresentar os seguintes aprendizados:

„„ Explicar o que são os alertas da classe Toast.


„„ Exemplificar o uso de alertas por meio do Toast.
„„ Aplicar os alertas em projetos, por meio do Toast.

Introdução
Todas as pessoas que possuem aparelhos com sistema operacional
Android já devem ter recebido várias formas de mensagens ao usar os
aplicativos, seja com alertas da classe Toast, notificações ou caixas de
diálogo.
Cada uma das formas de envio de mensagem para o usuário tem
suas particularidades e recomendações para uso de cada tipo de alerta.
Em alguns casos, é necessário solicitar ao usuário tomar uma decisão,
enquanto em outros basta apresentar uma informação que não chega
a causar prejuízo se não for lida.
Neste capítulo, você aprenderá o que são e como funcionam os
alertas da classe Toast e verá exemplos de seu uso nas linguagens Java
e Kotlin, além de sua aplicação em um caso.

Alertas da classe Toast


Os Toasts são usados para enviar mensagens rápidas e simples, quando
não existe a necessidade de interação com o usuário — por exemplo, na
configuração do despertador, há mensagem informando o tempo, em horas e
minutos, que falta para despertar.
2 Alertas e a classe Toast

Segundo Leal (2011, documento on-line), o uso de alertas da classe Toast


é recomendado quando as mensagens enviadas para o usuário não precisam
obstruir o uso do aplicativo, já que esse tipo de alerta não toma o foco da
Activity. Outro ponto importante é que, como esse tipo de alerta aparece e some
depois de algum tempo, não é possível garantir que o usuário viu a mensagem.
Portanto, não deve ser utilizado para mensagens críticas.
Veja, na Figura 1, um exemplo de alerta da classe Toast sendo exibido
para o usuário ao sair do aplicativo de e-mails sem que a mensagem tenha
sido enviada ao destinatário, quando o aplicativo salva o conteúdo digitado
antes de ser fechado.

Figura 1. Exemplo de um alerta da classe Toast sendo apre-


sentado ao usuário.
Fonte: Zarelli (2012, documento on-line).

De acordo com Zarelli (2012, documento on-line), os Toasts são simples


e podem ser facilmente utilizados por desenvolvedores Android iniciantes —
em alguns casos, com apenas uma linha de código. A posição-padrão de
exibição do Toast é no canto inferior da tela, centralizado horizontalmente,
mas pode ser alterada com um método específico.
Alertas e a classe Toast 3

Personalização de alertas Toast


Além da posição, também é possível personalizar o Toast em tamanho,
imagens, textos, cores de fundo, entre outras características, o que, para
Zarelli (2012, documento on-line), exige um pouco mais de conhecimento
do desenvolvedor.
Seu uso é essencial para passar feedbacks de ações, sem a necessidade
de criação de várias telas só para isso, ou perder a usabilidade da aplicação.
Apesar de ter o objetivo de ser simples, pode ser personalizado para dar um
aspecto diferenciado ao aplicativo.

Uso de alertas por meio do Toast


Os princípios de uso dos alertas da classe Toast, como forma de inicialização
e manipulação, são os mesmos, independentemente da linguagem de progra-
mação utilizada (seja Java ou Kotlin), quando se trata do desenvolvimento de
aplicativos nativos na plataforma Android.
Em ambas as linguagens, existe uma forma de instanciar os objetos para
reaproveitá-los nos alertas mais vezes e outra que resume parte do trecho de
código de forma a não armazenar o objeto sem necessidade.

Exemplos de uso em Java


No primeiro exemplo de uso de alertas Toast, é utilizado o método
makeText(), que recebe três parâmetros — o contexto da aplicação, o texto
e a duração — e retorna à instância do objeto de alerta criado, para ser apre-
sentado com o método show().

Context contexto = getApplicationContext();


String texto = "Mensagem Toast.";
int duracao = Toast.LENGTH _ SHORT;

Toast toast = Toast.makeText(contexto, texto,


duracao);
toast.show();
4 Alertas e a classe Toast

O método getApplicationContext() retorna o contexto da aplicação que é


utilizado como o primeiro parâmetro da função makeText(). A respeito do
terceiro parâmetro dessa função, que trata da duração de exibição, segundo
Leal (2011, documento on-line), apenas os valores Toast.LENGTH _ LONG
e Toast.LENGTH _ SHORT são válidos, não sendo possível especificar
valores em segundos ou milissegundos.

Outra forma de fazer a mesma coisa, com menos código, seria a seguinte:

Toast.makeText(getApplicationContext(), "Mensagem
Toast.", Toast.LENGTH _ SHORT).show();

Em ambas as formas de exibir o alerta, o Toast é apresentado na posição-


-padrão, que é no canto inferior da tela. Caso seja necessário exibir o alerta
em outra posição, é possível alterar por meio do método setGravity, que
recebe como parâmetros uma constante da classe Gravity à posição do des-
locamento em relação aos eixos x e y, conforme pode ser observado a seguir.

Toast toast = Toast.makeText(contexto, "Mensagem


Teste com Gravity.", Toast.LENGTH _ LONG);
toast.setGravity(Gravity.CENTER _ HORIZONTAL | Gra-
vity.CENTER _ VERTICAL, 0, 0);
toast.show();

Observe, na Figura 2, como é exibido o alerta quando utilizado o método


setGravity com as constantes de Gravity definidas como CENTER _ HO-
RIZONTAL e CENTER _ VERTICAL, e os offsets x e y como 0.
Alertas e a classe Toast 5

Figura 2. Exemplo de um alerta da classe Toast sendo


apresentado para o usuário por meio da utilização do
método setGravity.
Fonte: Cury (2014, documento on-line).

Alertas da classe Toast também são utilizados no desenvolvimento Web e podem


ser encontrados na documentação das bibliotecas Bootstrap e Materialize.
6 Alertas e a classe Toast

Acesse os links a seguir para ver a documentação do uso de alertas da classe


Toast para o desenvolvimento web, por meio das bibliotecas Bootstrap e Materialize,
respectivamente.

https://qrgo.page.link/nn9is

https://qrgo.page.link/NwNRp

Exemplos de uso em Kotlin


Se observarmos o primeiro exemplo de uso de alertas na linguagem Kotlin com
o primeiro da linguagem Java, é possível perceber o alto grau de semelhança
na forma de programar o alerta da classe Toast entre as duas linguagens.

val contexto = applicationContext


val texto = "Mensagem Toast."
val duracao = Toast.LENGTH _ SHORT

val toast = Toast.makeText(contexto, texto,


duracao)
toast.show()

Além do exemplo anterior, outro trecho de código que confirma a seme-


lhança no uso da classe Toast entre as linguagens é a forma de programar
a função com menos código e armazenando com menos dados, conforme o
exemplo a seguir:

Toast.makeText(aplicativolicationContext,
"Mensagem Toast.", Toast.LENGTH _ SHORT).show()
Alertas e a classe Toast 7

Em se tratando de mudança de posição, o código é tão semelhante quanto


o que foi visto nos exemplos anteriores:

toast.setGravity(Gravity.TOP or Gravity.LEFT, 0, 0)

Dessa forma, pode ser observado que, independentemente da linguagem


de programação escolhida, o desenvolvimento de alertas mais básicos é algo
que até mesmo desenvolvedores com menos experiência conseguem realizar
com facilidade.
Veja o tópico a seguir para saber mais sobre como personalizar o alerta,
inserindo uma imagem e mais mensagens, cada uma com um estilo diferente.

Na linguagem Kotlin, as linhas não terminam com “;”, e as variáveis não possuem tipos
fixos predeterminados.

Acesse o link a seguir para assistir a um vídeo que explica sobre a diferença de programar
para Android entre as linguagens Java e Kotlin.

https://qrgo.page.link/GvgTo

Alertas aplicados em projetos


Consideremos uma empresa fictícia que decidiu criar o conceito de ícones
informativos com dicas em seus aplicativos de diversos segmentos, para
interagir com seus usuários por meio de envio de alertas com uma imagem,
um título e uma descrição.
8 Alertas e a classe Toast

Como o conceito utilizado pela empresa exige a personalização dos alertas


na classe Toast, o programador criou o código-padrão em XML (arquivo
chamado de toast.xml) do alerta personalizado para todos os aplicativos da
empresa, em que cada um deles terá as imagens e os textos dos alertas de
acordo com o tema do contexto onde estão inseridos, conforme segue:

<?xml version="1.0" encoding="utf-8"?>


<LinearLayout xmlns:android="http://schemas.an-
droid.com/apk/res/android"
android:orientation="vertical"
android:layout _ width="fill _ parent"
android:layout _ height="fill _ parent"
android:id="@+id/toast _ layout _ root"
android:padding="8dp"
android:background="#DAAA">
<ImageView
android:layout _ width="wrap _ content"
android:layout _ height="wrap _ content"
android:src="@drawable/icon"/>
<TextView
android:id="@+id/titulo"
android:layout _ width="wrap _ content"
android:layout _ height="wrap _ content"
android:text="Título"
android:textSize="30sp"
android:layout _ marginTop="10sp"/>
<TextView
android:id="@+id/descricao"
android:layout _ width="wrap _ content"
android:layout _ height="wrap _ content"
android:text="Descrição"
android:textSize="18sp"/>
</LinearLayout>

Veja, na Figura 3, um exemplo de alerta personalizado com um componente


de imagem por meio do ImageView, e quatro componentes de texto por meio
do TextView.
Alertas e a classe Toast 9

Figura 3. Exemplo de alerta personalizado, com mais com-


ponentes de texto e imagem no corpo do alerta.
Fonte: Zarelli (2012, documento on-line).

Dessa forma, o programador pode alterar a imagem e os textos do título


e da descrição programaticamente em cada um dos aplicativos, como pode
ser observado no trecho de código a seguir, utilizado para exibir o alerta
personalizado:

LayoutInflater layoutInflater = getLayoutInflater();

int layout = R.layout.toast; //toast = nome do


arquivo
ViewGroup viewGroup = (ViewGroup) findViewById(R.
id.toast _ layout _ root);
View view = layoutInflater.inflate(layout,
viewGroup);

TextView titulo = (TextView) view.findViewById(R.


id.titulo);
titulo.setText(“Título alterado programaticamente”);
10 Alertas e a classe Toast

TextView descricao = (TextView) view.findViewById(R.


id. descricao);
d e s c r ic a o.s etT e x t(“D e s c r iç ã o a lt e r a d a
programaticamente”);

Toast toast = new Toast(this);


toast.setDuration(Toast.LENGTH _ LONG);
toast.setView(view);
toast.show();

Nesse caso, é necessário inflar o leiaute por meio do método Inflate


da classe LayoutInflater, com dois parâmetros: o primeiro é o leiaute do
Toast, e o segundo é o componente root de exibição, elemento raiz e definido
com o id toast _ layout _ root. Depois de alterar os elementos visuais,
é necessário instanciar o objeto da classe Toast e definir o leiaute criado no
XML, mas agora inflado, como a sua view, por meio do método setView().

Não se esqueça de que, para alterar programaticamente os elementos que desejar,


é necessário definir um id no respectivo elemento do arquivo XML e recuperar o
componente por meio do método findViewById.

Acesse o link a seguir para conhecer mais sobre programação para Android com a
linguagem Kotlin, por meio de um projeto de exemplo.

https://qrgo.page.link/CQ9TX
Alertas e a classe Toast 11

CURY, T. E. Enviando mensagens no Android via Toast. Thiago Cury, Porto Alegre, 13
jul. 2014. Disponível em: https://www.devmedia.com.br/exibindo-mensagens-no-
-android-com-a-classe-toast/26668. Acesso em: 18 jun. 2019.
LEAL, L. [Android SDK] Alertas, Toasts, e Notificações. Fórum Script Brasil, São Paulo, 18
ago. 2011. Disponível em: https://forum.scriptbrasil.com.br/topic/163089-android-sdk-
-alertas-toasts-e-notifica%C3%A7%C3%B5es/. Acesso em: 18 jun. 2019.
ZARELLI, G. B. Exibindo mensagens no Android com a classe Toast. DevMedia, Rio de
Janeiro, 2012. Disponível em: https://www.devmedia.com.br/exibindo-mensagens-
-no-android-com-a-classe-toast/26668. Acesso em: 18 jun. 2019.

Leituras recomendadas
ANDROID Developers. [S. l.: S. n.], 2019. Disponível em: https://developer.android.com.
Acesso em: 18 jun. 2019.
DEITEL, P.; DEITEL, H.; WALD, A. Android 6 para programadores: uma abordagem baseada
em aplicativos. 3. ed. Porto Alegre: Bookman, 2016. 618 p.

Você também pode gostar