Set Toast Longueur Apparaître
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.
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 .. !!!
// 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