toastlini1

Estou fazendo um curso super legal na Udacity de Android. Um dos capítulos, nos indica a ler a documentação sobre mensagens Toasts, que são uma forma rápida de falar algo para o usuário, um pop-up rapidinho que mostra a mensagem e some em dois ou quatro segundos (conforme a configuração realizada). Como adoro escrever para fixar conhecimento e também compartilhar um pouquinho do que eu estudo segue um tutorial rápidinho de, como utilizar toasts em um app Android.

Criando uma Toast básica

Usamos o método makeText() que possui três parâmetros:

  • O contexto que é normalmente da application ou da activity;
  • A mensagem que é a mensagem que será mostrada no toast;
  • A duração que o pop-up ficará visível.

Na duração, temos duas opções, LENGTH_SHORT que é em torno de dois segundos, ou LENGTH_LONG que fica aparecendo a mensagem por volta de 4 segundos.

Exemplo:

Context context = getApplicationContext();
CharSequence messagem = "Eu gosto de torrada torrada";
final Toast toastBasic = Toast.makeText(context, message, Toast.LENGTH_SHORT);

Para ver a sua Toast, é só chamar com o método show():

toastBasic.Show();

Ou fazer tudo direto:

Toast.makeText(this, "Eu gosto de torrada torrada", Toast.LENGTH_SHORT).show();


Posição do toast

Podemos colocar nossa toast em qualquer lugar da tela, onde você prefere? A posição padrão é centralizado na parte inferior da tela, para altera-lá utilizamos o método setGravity(). Este método seta a posição da nossa Toast na tela e possui três parâmetros:

  • Gravity: Especifica o posicionamento da Toast na tela;
  • xOffset: Alterando este valor, ele move a Toast para a direita e esquerda;
  • yOffset: Alterando este valor, ele move a Toast para cima e para baixo.
Context context = getApplicationContext();
CharSequence messagem = "Eu gosto de torrada torrada";
int duration = Toast.LENGTH_SHORT;

int MoveToastDown = 150;
int movetoastRight = 150;

final Toast toastTop = Toast.makeText(context, message, duration);
toastTop.setGravity(Gravity.TOP | Gravity.LEFT, movetoastRight, MoveToastDown);
toastTop.Show();


Customizando a toast

Para uma Toast diferentona, precisamos criar um layout e salvar na pasta res/layout como um arquivo xml (toast_layout.xml). Precisamos criar uma view e inflar o layout que criamos, criar uma toast com apenas o contexto de parâmetro, e setar a nossa view no Toast:

Exemplo:

LayoutInflater inflater = getlayoutinflater();

//infla o layout na view
View view = inflater.inflate(R.Layout.toast_layout, (ViewGroup)findViewById(R.id.custom.toasty.container));

//Cria um TextView para mostrar o texto do Toast
TextView text = (TextView) view.findViewbyId(R.id.text);

//Informa o texto para ser exibido
text.settext(getString(R.string.custom_toast_text));

//Cria o toast
final Toast customToast = new Toast(context);

//informa a posição
customToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

//informa o tempo que o Toast ficará visível
customToast.setDuration(Toast.LENGTH_LONG);

//informa a view que o toast vai usar
customToast.setView(view);

//mostra a Toast
customToast.Show();

Você pode acessar um código com estes exemplos em meu Github.

Grande Abraço, A.R. 🙂