Cómo establecer el tiempo de visualización de Toast menos de Toast.LENGTH_SHORT

Quiero mostrar tostadas menos de Toast.LENGTH_SHORT, ya que siento que su toma alrededor de 2 segundos. Quiero mostrar tostadas sólo por medio segundo.

¿Y cuál es el intervalo de tiempo para Toast.LENGTH_SHORT y Toast.LENGTH_LONG?

Sólo hay dos valores posibles:

private static final int LONG_DELAY = 3500; // 3.5 seconds private static final int SHORT_DELAY = 2000; // 2 seconds 

El ajuste de otros valores no funciona. Si la duración no es igual a 1 ( Toast.LENGTH_LONG ), la duración será SHORT_DELAY (2 segundos):

 long delay = immediate ? 0 : (r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY); 

En fuentes de Toast escritas que

Este tiempo podría ser definido por el usuario.

Pero no puedo encontrar la manera de hacer esto.

Actualización: Hay una solución aquí: Set Toast Aparecer Longitud

Esto ha funcionado para mí

 final Toast toast = Toast.makeText(getApplicationContext(), "The following 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); 

Vea mi solución sugerida aquí . Usted básicamente llama a toast.cancel () después de un retardo especificado que es más corto que la duración de tostada estándar.

Prueba esto

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

Espero que esta ayuda .. Disfrute .. !!!

Para noobs he hecho la solución más simple – un método.

 public void showToastMessage(String text, int duration){ final Toast toast = Toast.makeText(getActivity(), text, Toast.LENGTH_SHORT); toast.show(); Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { toast.cancel(); } }, duration); } 

También debe importar:

 import android.os.Handler; import android.widget.Toast; 

Puede llamar a este método, por ejemplo:

 showToastMessage("your noob", 1000); 

Método anterior debería funcionar sólo en Fragmento! Si desea que funcione en Actividad, reemplace getActivity () con getApplicationContext () en el mensaje de brindis. Buena suerte desarrolladores!

funcionará.


  public void toastMessage(final String message) { this.runOnUiThread(new Runnable() { public void run() { 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(100); myMessage.setGravity(Gravity.TOP | Gravity.CENTER_HORIZONTAL | Gravity.CENTER_VERTICAL); toast.show(); } }); } 

Esto parece funcionar para mí (establecer la duración de lo que quieras):

 mActivity.runOnUiThread(new Runnable() { public void run() { Toast toast = new Toast(mActivity .getApplicationContext()); toast.setView(layout); toast.setDuration(400); toast.setGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL, 0, 0); toast.show(); } }); 
  • Detección de mensajes de tostadas
  • Android: crea un brindis anclado en una vista
  • Establezca Android Toast duración a ser realmente largo (por ejemplo, 1 minuto)
  • Mensaje de tostada persistente: La tostada no desaparecerá después de la ejecución
  • No se puede crear el controlador dentro de hilo que no ha llamado Looper.prepare ()
  • Cómo cancelar Toast creado en un método diferente en android?
  • Tostadas no aparecen en UnCaughtExceptionHandler
  • Incompatibilidad de tipo: no se puede convertir void to toast
  • Tostas versus cuadros de diálogo: ¿cuál usar cuando?
  • Suprimir tostadas del paquete en Android
  • El tostado androide no se ajusta al texto
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.