Android toast - promena vremenskog intervala

Baby Yoda

Contributor
Poruka
21.753
Android ima toast (poruka koja iskoči kao neka vrsta obaveštnja, a zatim nestane). Kao programer imate dve opcije samo i to LENGTH_SHORT i LENGTH_LONG. Primer toast-a:

Java:
Context context = getApplicationContext();
CharSequence text = "Hello toast!";
int duration = Toast.LENGTH_SHORT;

Toast toast = Toast.makeText(context, text, duration);
toast.show();

Međutim, za duration, osim sistemskih vrednosti ne možete sami napisati tipa 500(ms). Za taj hack morate napravi svoju funkciju :

Java:
public static void showToast(final Activity activity, final String word, final long time){
        activity.runOnUiThread(new Runnable() {
            public void run() {
                final Toast toast = Toast.makeText(activity, word, Toast.LENGTH_LONG);
                toast.show();
                Handler handler = new android.os.Handler();
                handler.postDelayed(new Runnable() {
                    public void run() {
                        toast.cancel();
                    }
                }, time);
            }
        });
    }

Startujemo toast unutar funkcije kao što bi ga uvek i startovali, nema tu neke magije. Ali pomoću handler-a možemo u toku rada setovati vremenski interval kada prekidamo toast. To je ovo na kraju što piše time. Praktično imamo kopiju Toast funkcije samo što smo je pokrenuli unutar naše funkcije sa mogućnošću da prekinemo njeno prikazivanje.

Tokom rada moje aplikacije u praksi je to ovako nešto ispalo:
Java:
 showToast(ImageTestingEvent.this, "+5exp", 100);

Možda će nekome biti od koristi, ko zna. :D
 

Back
Top