1

I used toasts in my android application. Can I show the toast as long as i wish instead of

Toast.LENGTH_LONG

and

Toast.LENGTH_SHORT

can someone help me with some helpful code segment. Thank you.

Samantha Withanage
  • 3,811
  • 10
  • 30
  • 59

3 Answers3

6

What you can do is create a method which with some kind of looping around to make your Toast display as long as duration you want it,

private void showToast(int duration) {
    final Toast toast = Toast.makeText(getBaseContext(), 
                                                      "This is a Toast Message!",
                Toast.LENGTH_SHORT);
    toast.show();
    new CountDownTimer(duration, 500) {
            public void onTick(long millisUntilFinished) {
                toast.show();
            }
            public void onFinish() {
                toast.cancel();
            }

        }.start();
    }

And then you can call this method as showToast(10000);. So, what it will do is it will keep showing the Toast in loop until the duration and will cancel the toast as the duration is completed.

Luccas
  • 4,078
  • 6
  • 42
  • 72
Lalit Poptani
  • 67,150
  • 23
  • 161
  • 242
2

Try this..

final Toast toast = Toast.makeText(getBaseContext(), "YOUR MESSAGE",Toast.LENGTH_SHORT);
            toast.show();
            new CountDownTimer(10000, 1000)
            {
                public void onTick(long millisUntilFinished) {toast.show();}
                public void onFinish() {toast.cancel();}
            }.start();

Enjoy..

Virag Brahme
  • 2,062
  • 1
  • 20
  • 32
0

no cannot directly handle that,you have to use handler to cancel the toast like this:

 final Toast toast = Toast.makeText(getApplicationContext(), "This message will disappear         in half second", Toast.LENGTH_SHORT);
toast.show();

Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
       @Override
       public void run() {
           toast.cancel(); 
       }
}, 500); // 500ms is the time to cancel the toast.
Hamad
  • 5,096
  • 13
  • 37
  • 65