Question

Y at-il de toute façon je peux dire une notification Toast pour montrer que pour un laps de temps spécifié. En général, plus court, un message de pain grillé régulier.

Était-ce utile?

La solution

J'ai trouvé une solution à ce toast.cancel en appelant () après un certain délai qui est plus courte que la durée de pain grillé standard.

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

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

Autres conseils

Non.

Vous pouvez faire quelque chose comme:

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

mais il ne se manifestera.

La durée doit être soit LENGTH_SHORT ou LENGTH_LONG.

Essayer cette

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();

Hope cette aide .. Profitez .. !!!

Vous pouvez définir une durée plus longue en utilisant un hack, comme décrit

// essayer

    public void myToast(String message) {
    LayoutInflater myInflator = getLayoutInflater();
    View myLayout = myInflator.inflate(R.layout.custom_layout,
            (ViewGroup) findViewById(R.id.toastlayout));
    TextView myMessage = (TextView) myLayout.findViewById(R.id.label);
    myMessage.setText(message);
    Toast toast = new Toast(getApplicationContext());
    toast.setView(myLayout);
    toast.setDuration(400);
    myMessage.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL
            | Gravity.CENTER_VERTICAL);
    toast.show();
}

Le stock Android classe Toast est codé pour accepter uniquement un paramètre Toast.LENGTH_SHORT ou Toast.LENGTH_LONG lorsque vous appelez un toast. Les valeurs de ces paramètres sont 0 et 1, respectivement, et n'acceptent aucune valeur milliseconde lors de l'appel setDuration (); Si vous devez montrer un toast pour une durée différente de celle que vous pouvez envisager d'utiliser une classe de mon SuperToasts bibliothèque. SuperToast classe dans la bibliothèque est un mimétique du stock classe Android Toast et peut avoir tout la valeur milliseconde utilisée en tant que paramètre de durée. Je ne recommande pas d'utiliser cette classe pour montrer un Toast plus que la longueur de stock maximum Android Toast en raison de l'effet persistant de ces Toasts. Je vous recommande d'utiliser le SuperActivityToast classe pour afficher les messages Toast dans une activité / Fragment parce que la Toast sera détruite en même temps que votre activité éliminant toute chance d'un message persistant. Pour utiliser cette classe vous pouvez créer un nouvel objet:

SuperActivityToast superActivityToast = new SuperActivityToast(this);  
superActivityToast.setDuration(SuperToast.DURATION_SHORT); 
// setDuration(); can also accept millisecond values
// superActivityToast.setDuration(1000);  
superActivityToast.setText("Hello world!");  
superActivityToast.show();  

Ou utilisez la méthode statique:

SuperActivityToast.createDarkSuperActivityToast(this, "Hello world!", SuperToast.DURATION_SHORT).show();  

Il y a des tonnes d'options de personnalisation que vous pouvez utiliser avec la bibliothèque et, consultez le Wiki la page!

Voici une autre façon de configurer le temps selon votre choix:

public void showMsg(String msg, final long duration) {
    final Toast toast = Toast.makeText(getApplicationContext(), msg, Toast.LENGTH_LONG);
    toast.show();
    Thread t = new Thread() {
        public void run(){
            try {
                sleep(duration);
                toast.cancel(); 
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            finally { }
        }
    };
    t.start();
}

NOTE:. La durée est spécifiée en millisecondes

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top