usar - ¿Cómo mostrar Toast en Android?
toast make in android (17)
Forma mas simple
toast("Your Message")
O
toast(R.string.some_message)
Solo agrega dos métodos en tu BaseActivity
. O crea una nueva BaseActivity
si aún no lo estás utilizando.
public class BaseActivity extends AppCompatActivity { public void toast(String msg) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } public void toast(@StringRes int msg) { Toast.makeText(this, msg, Toast.LENGTH_SHORT).show(); } }
Y extiende todas tus actividades con BaseActivity
.
public class MainActivity extends BaseActivity
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 la parte delantera, puedo manejar eventos táctiles en ese mapa. Cada vez que toco, se AsyncTask
una AsyncTask
, descarga algunos datos y hace un Toast
que muestra los datos. Aunque comienzo la tarea en el evento táctil, no se muestra ningún brindis, 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 empezar 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
haz un brindis
Toast.makeText(app.getBaseContext(),(String)data.result,
Toast.LENGTH_SHORT).show();
En el nuevo TestTask(this)
, esta es una referencia a MapOverlay
y no a MapActivity
, por lo que este fue el problema.
Sintaxis
Toast.makeText(context, text, duration);
Valor del parámetro
contexto
getApplicationContext()
: devuelve el contexto para todas las actividades que se ejecutan en la aplicación.
getBaseContext()
: si desea acceder al contexto desde otro contexto dentro de la aplicación, puede acceder.
getContext()
: devuelve la vista de contexto solo la actividad en ejecución actual.
texto
text
: devuelve "STRING". Si no es una cadena, puede usar type cast.
(string)num // type caste
duración
Toast.LENGTH_SHORT
- Retardo de Toast 2000 ms predefinido
Toast.LENGTH_LONG
- Retardo de Toast 3500 ms predefinido
milisecond
:milisecond
definidos por el usuario con retardo de tostado (por ejemplo, 4000)
Ejemplo 1
Toast.makeText(getApplicationContext(), "STRING MESSAGE", Toast.LENGTH_LONG).show();
Ejemplo.2
Toast.makeText(getApplicationContext(), "STRING MESSAGE", 5000).show();
Mostrar tostadas 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.
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 actúan como indicadores booleanos, lo que significa que no puede enviar el temporizador de tostadas a milisegundos, pero debe usar cualquiera de esas 2 opciones)
Encontré las respuestas aquí, y me atrajo el hecho de que parece haber alguien asomando, creyendo que se requiere un contexto de Actividad. Este no es el caso. Sin embargo, es un requisito que se publique un brindis desde el evento principal o el subproceso de la interfaz de usuario. Por lo tanto, hacer que esto funcione fuera del contexto de una 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 acceder a una instancia de Activity
para que esto funcione. Por favor, deja de sugerir que este es el caso! Si la Activity
fuera necesaria, la firma del método no requeriría un Context
.
Esto funcionó para mí:
Toast.makeText(getBaseContext(), "your text here" , Toast.LENGTH_SHORT ).show();
Extendiendo la actividad usando baseadapter
usé esto.
Toast.makeText(getActivity(),
"Your Message", Toast.LENGTH_LONG).show();
o si estás utilizando actividad o actividad mainactivity
Toast.makeText(MainActivity.this,
"Your Message", Toast.LENGTH_LONG).show();
Hay dos maneras de hacerlo.
Utilice el mensaje de 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 probado varios brindis y para aquellos a los que les está dando el error intentan
Toast.makeText(getApplicationContext(), "google", Toast.LENGTH_LONG).show();
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();
}
}
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 tu 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();
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();
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 forma general:
Toast.makeText(context,"Your message.", Toast.LENGTH_LONG).show();
Si desea escribir un simple brindis en su actividad: Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();
1.Mostrando TextView en Toast: ---
TextView tv = new TextView(this);
tv.setText("Hello!");
tv.setTextSize(30);
tv.setTextColor(Color.RED);
tv.setBackgroundColor(Color.YELLOW);
2.Mostrando imagen como tostada: -
ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.blonde);
Toast t = new Toast(this);
t.setView(iv);
t.setDuration(Toast.LENGTH_LONG);
t.show();
3.mostrando la disposición como tostada: -
LayoutInflater li = getLayoutInflater();
View view = li.inflate(R.layout.my_toast_layout,null,false);
Toast t = new Toast(this);
t.setView(view);
t.setDuration(Toast.LENGTH_LONG);
t.show();
** Si desea escribir el brindis en su Async: private Activity activity;
private android.content.Context context;
this.activity = activity;
this.context = context;
Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();
Si es fragmento,
Toast.makeText(getActivity(), "this is my Toast message!!! =)",
Toast.LENGTH_LONG).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(),"your string",Toast.LENGTH_SHORT).show();
En lugar de usar "app.getBaseContext ()".
Puede intentar usar " getApplicationContext () " o " getContext () ".
Si su código está activo, debe usar "this" de "Activty.this".
Si su código está en el fragmento, debe ir a "getActivity ()"