¿Cómo mostrar Toast en Android?

Tengo un control deslizante que se puede levantar y luego muestra un mapa. Puedo mover el control deslizante hacia arriba y hacia abajo para ocultar o mostrar el mapa. Cuando el mapa está en el frente, puedo manejar eventos táctiles en ese mapa. Cada vez que toco, se AsyncTask una AsyncTask , descarga algunos datos y realiza un Toast que muestra los datos. Aunque comienzo la tarea en el evento táctil, no se muestran tostadas, no hasta que cierre el control deslizante. Cuando el control deslizante se cierra y el mapa ya no se muestra, aparece Toast .

¿Algunas ideas?

Bien, comienza la tarea

EDITAR:

 public boolean onTouchEvent(MotionEvent event, MapView mapView){ if (event.getAction() == 1) { new TestTask(this).execute(); return true; }else{ return false; } } 

y en onPostExecute hacer un brindis

 Toast.makeText(app.getBaseContext(),(String)data.result, Toast.LENGTH_SHORT).show(); 

En TestTask(this) nuevo TestTask(this) , esta es una referencia a MapOverlay y no a MapActivity , por lo que este era el problema.

Para mostrar Toast en su aplicación, intente esto:

 Toast.makeText(getActivity(), (String)data.result, Toast.LENGTH_LONG).show(); 

Otro ejemplo:

 Toast.makeText(getActivity(), "This is my Toast message!", Toast.LENGTH_LONG).show(); 

Podemos definir dos constantes para la duración:

int LENGTH_LONG Muestra la vista o la notificación de texto durante un largo período de tiempo.

int LENGTH_SHORT Muestra la vista o notificación de texto por un corto período de tiempo.

Personalizando su tostada

 LayoutInflater myInflater = LayoutInflater.from(this); View view = myInflater.inflate(R.layout.your_custom_layout, null); Toast mytoast = new Toast(this); mytoast.setView(view); mytoast.setDuration(Toast.LENGTH_LONG); mytoast.show(); 

La actividad baseadapter usando baseadapter usó esto

 Toast.makeText(getActivity(), "Your Message", Toast.LENGTH_LONG).show(); 

o si estás usando actividad o mainactivity

 Toast.makeText(MainActivity.this, "Your Message", Toast.LENGTH_LONG).show(); 

Sintaxis

 Toast.makeText(context, text, duration); 

Parámetro Valor

contexto

getApplicationContext() – Devuelve el contexto de todas las actividades que se ejecutan en la aplicación.

getBaseContext() – Si desea acceder a Context desde otro contexto dentro de la aplicación, puede acceder.

getContext() – Devuelve la vista de contexto solo la actividad de ejecución actual.

texto

text – Devuelve “STRING”, si no es cadena, puede usar type cast.

  (string)num // type caste 

duración

Toast.LENGTH_SHORTToast.LENGTH_SHORT pan tostado 2000 ms predefinido

Toast.LENGTH_LONGToast.LENGTH_LONG pan tostado 3500 ms predefinido

milisecondmilisecond tostada milisegundos definidos por el usuario (por ejemplo, 4000)


Ejemplo 1

 Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show(); 

Ejemplo.2

 Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show(); 

Puedes personalizar tu tost:

 LayoutInflater mInflater=LayoutInflater.from(this); View view=mInflater.inflate(R.layout.your_layout_file,null); Toast toast=new Toast(this); toast.setView(view); toast.setDuration(Toast.LENGTH_LONG); toast.show(); 

O manera general:

 Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show(); 

Brindar en Android

 Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_SHORT).show(); 

o

 Toast.makeText(MainActivity.this, "YOUR MESSAGE", LENGTH_LONG).show(); 

(LENGTH_SHORT y LENGTH_LONG están actuando como indicadores booleanos, lo que significa que no puedes enviar el temporizador de brindis a milisegundos, pero debes usar cualquiera de esas 2 opciones)

Hay dos maneras de hacerlo.

Utilice el mensaje Toast incorporado

 //Toast shown for short period of time Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_SHORT).show(); //Toast shown for long period of time Toast.makeText(getApplicationContext(), "Toast Message", Toast.LENGTH_LONG).show(); 

o hacer uno personalizado proporcionando un archivo de diseño personalizado

 Toast myToast = new Toast(getApplicationContext()); myToast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); myToast.setDuration(Toast.LENGTH_LONG); myToast.setView(myLayout); myToast.show(); 

He intentado varias tostadas y para aquellos a quienes les brinda tostadas, intenta

 Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show(); 

Me encontré con las respuestas aquí y me atrajo el hecho de que parece haber alguien hurgando, creyendo que se requiere un contexto de Actividad. Este no es el caso. Sin embargo, es un requisito que un Toast se publique desde el evento principal o el subproceso UI. Entonces, hacer que esto funcione fuera del contexto de la actividad es un poco complicado. Aquí hay un ejemplo que funcionaría dentro de un servicio del sistema, o cualquier clase potencial que finalmente herede de Context .

 public class MyService extends AccessibilityService { public void postToastMessage(final String message) { Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Toast.makeText(getApplicationContext(), message, Toast.LENGTH_LONG).show(); } }); } } 

Tenga en cuenta que no necesitamos acceso a una instancia de Activity para que esto funcione. Por favor deja de sugerir que este es el caso! Si se requería Activity , la firma del método no requeriría un Context .

Si es fragmento,

 Toast.makeText(getActivity(), "this is my Toast message!!! =)", Toast.LENGTH_LONG).show(); 

Para mostrar Toast usa el siguiente código:

Toast toast = new Toast(getApplicationContext());

 toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.show(); 
  Toast toast=Toast.makeText(getApplicationContext(),"Hello", Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 0); // last two args are X and Y are used for setting position toast.setDuration(10000);//you can even use milliseconds to display toast toast.show();**//showing the toast is important** 
 Toast.makeText(app.getBaseContext(),String)data.result,Toast.LENGTH_SHORT).show(); 

en lugar de usar “app.getBaseContext ()”.

Puede intentar usar ” getApplicationContext () ” o ” getContext () “.

Si su código está en actividad, entonces debe usar “this” of “Activty.this”.
Si su código está fragmentado, debería ir a “getActivity ()”

La manera más simple! (Para mostrar en su actividad principal, reemplace el primer argumento por otra actividad)

 Button.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ Toast.makeText(MainActivity.this,"Toast Message",Toast.LENGTH_SHORT).show(); } } 

Esto funcionó para mí:

 Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show(); 

Mostrar brindis del servicio

 public class ServiceA extends Service { //.... public void showToast(final String message) { Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Toast.makeText(getContext(), message, Toast.LENGTH_LONG).show(); } }); } //.... } 

También puede poner el método showToast en su clase de aplicación y mostrar brindis desde cualquier lugar.