Dúvida ao setar tempo para o Toast

832 views
Skip to first unread message

Romário De Oliveira

unread,
Jul 2, 2012, 9:03:31 AM7/2/12
to androidb...@googlegroups.com
eu estou com dificuldade para aumentar o tempo de um Toast em uma app minha. O toast é o seguinte:
Toast.makeText(mapView.getContext(), teste0", Toast.LENGTH_LONG).show();


Tentei fazer o seguinte para aumentar o tempo dele:
final Toast toast = Toast.makeText(mapView.getContext(), "teste", Toast.LENGTH_SHORT);
        toast.show();

        Handler handler = new Handler();
            handler.postDelayed(new Runnable() {
               @Override
               public void run() {
                   toast.cancel(); 
               }
        }, 1000000);


Tentei o seguinte também, mas nenhum deu certo...
Toast toast = Toast.makeText(mapView.getContext(), "Nome: ",20000000);
toast.setDuration(200000);
toast.show();

Alguem tem uma ideia de passar um tempo maior para o toast? se eu posso definir este tempo...
Eu gostaria q ele tivesse a duração de uns 5 segundos... por q o tempo Toast.LENGTH_LONG é muito curto para ler o que eu pretendo exibir.

Maicon Strey

unread,
Jul 2, 2012, 9:11:39 AM7/2/12
to androidb...@googlegroups.com
Romário,
No lugar do "Toast.LENGTH_SHORT" eu só informo o tempo em segundos e funciona certinho:

"Toast.makeText(mapView.getContext(), "teste", 15);"

atenciosamente.

Maicon Strey
Novo Hamburgo - RS - Brasil
------------------
Precisa me dar um presente e não sabe o que comprar? wishlist
Linux user: #525086
------------------



2012/7/2 Romário De Oliveira <romar...@gmail.com>

Romário De Oliveira

unread,
Jul 3, 2012, 10:01:10 AM7/3/12
to androidb...@googlegroups.com
Este Toast esta dentro do método onTap de uma classe q estende de Overlay

Toast.makeText(mapView.getContext(),"teste", Toast.LENGTH_LONG).show();

será q é este o motivo deu nao conseguir setar um tempo para ele passando diretamente no lugar do "Toast.LENGTH_LONG" ???

alguém tem idéia se pode ser isso?

eu já tentei passar direto mas nao funcionou

Jonathans Coelho

unread,
Jul 3, 2012, 10:15:42 AM7/3/12
to androidb...@googlegroups.com
Saca isso..

Toast toast = Toast.makeText(this, "a", Toast.LENGTH_LONG);
toast.setDuration(300);
--
Att.

Jonathan Coelho
Analista de Sistemas
Aocom - Administração Orientada por computador

Contato:(62) 82041097

Ernani Joppert Pontes Martins

unread,
Jul 3, 2012, 10:39:52 AM7/3/12
to androidb...@googlegroups.com
Pelo que eu saiba o Toast só consegue durar ou LONG ou SHORT e não dá
pra mudar isso.

Posso estar enganado!

Abraço,

Ernani

2012/7/3 Jonathans Coelho <jonatha...@gmail.com>:

luciofm

unread,
Jul 3, 2012, 10:58:32 AM7/3/12
to androidb...@googlegroups.com
É isso mesmo, Toasts são ou LONG ou SHORT.


    private void scheduleTimeoutLocked(ToastRecord r, boolean immediate)
    {
        Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r);
        long delay = immediate ? 0 : (r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY);
        mHandler.removeCallbacksAndMessages(r);
        mHandler.sendMessageDelayed(m, delay);
    }


Lúcio Maciel
luc...@gmail.com


2012/7/3 Ernani Joppert Pontes Martins <jop...@gmail.com>

Romário De Oliveira

unread,
Jul 4, 2012, 10:09:41 AM7/4/12
to androidb...@googlegroups.com
Fiz assim Jonathans:

Toast toast = Toast.makeText(mapView.getContext(), "a", Toast.LENGTH_LONG);
toast.setDuration(200000);
toast.show();


e não deu certo igual, a duraçao deveria ser mais do q 2 seg, mas nao acontece isso...


Ernani  e luciofm  eu já vi várias pessoas falando q é possivel, so que comigo nao esta funcionando... nao estou entendo os motivos disso

luciofm

unread,
Jul 4, 2012, 10:14:27 AM7/4/12
to androidb...@googlegroups.com
May the source be with you Luke...

Talvez se algum OEM alterou o código do framework, mas AOSP ele só aceita SHORT E LONG. Ou melhor, qualquer coisa que for diferente de LENGTH_LONG (que é 1) será considerado como LENGTH_SHORT.

Lúcio Maciel
luc...@gmail.com


2012/7/4 Romário De Oliveira <romar...@gmail.com>

Romário De Oliveira

unread,
Jul 6, 2012, 7:44:00 PM7/6/12
to androidb...@googlegroups.com
Boa noite Lúcio 

O que seria o "OEM" e o "AOSP" que vc falou?

atualmente nao é possivel setar o tempo para o Toast? seria isso que voce quis dizer?

Douglas Drumond

unread,
Jul 6, 2012, 8:40:36 PM7/6/12
to androidb...@googlegroups.com
OEM é o fabricante e AOSP é o Android open source.
OEM = Original Equipment Manufacturer
AOSP = Android Open Source Project

--
Douglas Drumond



2012/7/6 Romário De Oliveira <romar...@gmail.com>
Reply all
Reply to author
Forward
0 new messages