web-dev-qa-db-fra.com

Comment afficher Toast dans Android?

J'ai un curseur qui peut être tiré vers le haut, puis il montre une carte. Je peux déplacer le curseur de haut en bas pour masquer ou afficher la carte. Lorsque la carte est au premier plan, je peux gérer les événements tactiles sur cette carte. Chaque fois que je touche, une AsyncTask est activée, elle télécharge des données et crée une Toast qui affiche les données. Bien que je commence la tâche sur un événement tactile, aucun pain grillé n'est affiché, pas avant que je ferme le curseur. Lorsque le curseur est fermé et que la carte n'est plus affichée, la variable Toast apparaît.

Des idées?

Bien commencer la tâche

MODIFIER:

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

et dans onPostExecute porter un toast

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

Dans new TestTask(this), il s’agit d’une référence à MapOverlay et non à MapActivity, c’était donc le problème.

407
Artjom Zabelin

Pour afficher Toast dans votre application, essayez ceci:

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

Un autre exemple:

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

Nous pouvons définir deux constantes pour la durée:

int LENGTH_LONG Affiche la notification d'affichage ou de texte pour une longue période de temps.

int LENGTH_SHORT Affiche la notification d'affichage ou de texte pour une courte période de temps.

Personnaliser votre toast

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

L'extension d'activité en utilisant baseadapter a utilisé ceci

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

ou si vous utilisez activité ou mainactivity

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

Syntaxe

Toast.makeText(context, text, duration);

Valeur du paramètre

le contexte

getApplicationContext() - Retourne le contexte pour toutes les activités en cours d'exécution dans l'application.

getBaseContext() - Si vous souhaitez accéder au contexte à partir d'un autre contexte de l'application, vous pouvez y accéder.

getContext() - Renvoie la vue contextuelle uniquement l'activité en cours.

texte

text - Retourne "STRING", Si non string, vous pouvez utiliser le transtypage.

 (string)num   // type caste

durée

Toast.LENGTH_SHORT - Toast delay 2000 ms prédéfini

Toast.LENGTH_LONG - Toast delay 3500 ms prédéfini

milisecond - délai de grillage défini par l'utilisateur en millisecondes (par ex. 4000)


Exemple 1

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

Exemple.2

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

Toast dans Android

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

ou

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

(LENGTH_SHORT et LENGTH_LONG agissent comme des indicateurs booléens - ce qui signifie que vous ne pouvez pas envoyer de toast timer en millisecondes, mais vous devez utiliser l'une de ces 2 options.)

21
Dinesh

Vous pouvez personnaliser votre 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();

Ou manière générale:

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

J'ai essayé plusieurs toasts et pour ceux que leur toast leur donne l'erreur d'essayer

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

Il y a deux façons de le faire.

Utilisez le message Toast intégré 

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

ou créer un personnalisé en fournissant un fichier de présentation personnalisé

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

J'ai trouvé les réponses ici et j'ai été attiré par le fait qu'il semble y avoir quelqu'un qui fouille, croyant qu'un contexte d'activité est requis. Ce n'est pas le cas. Cependant, il est obligatoire qu'un Toast soit publié à partir de l'événement principal ou du fil de l'interface utilisateur. Donc, faire en sorte que cela fonctionne en dehors d'un contexte d'activité est un peu délicat. Voici un exemple qui fonctionnerait à l'intérieur d'un service système ou de toute classe potentielle qui hériterait 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();
            }
        });
    }
}

Notez que nous n’avons pas besoin d’accéder à une instance de Activity pour que cela fonctionne. Arrêtez de suggérer que c'est le cas! Si Activity était requis, la signature de la méthode n'appellerait pas Context.

9
ChrisCM

Si c'est fragment,

Toast.makeText(getActivity(), "this is my Toast message!!! =)",
                   Toast.LENGTH_LONG).show();
7
sam
Toast.makeText(app.getBaseContext(),"your string",Toast.LENGTH_SHORT).show();

au lieu d'utiliser "app.getBaseContext ()". 

Vous pouvez essayer d’utiliser " getApplicationContext () " ou " getContext () ". 

Si votre code est en activité, vous devez utiliser "this" de "Activty.this".
Si votre code est dans le fragment alors vous devriez aller pour "getActivity ()"

7
Yogesh Nandha

Pour afficher Toast, utilisez le code suivant:

Toast toast = new Toast(getApplicationContext());

toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);

toast.setDuration(Toast.LENGTH_LONG);

toast.show();
6
Anurag
 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**
5

 enter image description here

Syntaxe

Toast.makeText(context, text, duration);

Vous pouvez utiliser getApplicationContext () ou getActivity () ou MainActivity.this (si le nom de l'activité est MainActivity)

Toast.makeText(getApplicationContext(),"Hi I am toast",Toast.LENGTH_LONG).show();

ou

Toast.makeText(MainActivity.this,"Hi I am Toast", Toast.LENGTH_LONG).show();

cliquez ici pour obtenir plus d'informations

2
Athira Reddy

Manière la plus simple! (Pour afficher dans votre activité principale, remplacez le premier argument par une autre activité)

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

Cela a fonctionné pour moi:

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

Si vous voulez écrire un toast simple dans votre activité: Toast.makeText(getApplicationContext(),"Hello",Toast.LENGTH_SHORT).show();

1. Afficher TextView dans Toast: ---

TextView tv = new TextView(this);tv.setText("Hello!");tv.setTextSize(30);tv.setTextColor(Color.RED);tv.setBackgroundColor(Color.YELLOW);

2. Image montrant comme du pain grillé: -

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.présentant la disposition en tant que pain grillé: -

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 vous voulez écrire le pain grillé dans votre Async, alors: private Activity activity;private Android.content.Context context;this.activity = activity;this.context = context;Toast.makeText(context, "Hello", Toast.LENGTH_SHORT).show();

0
Deepya

Afficher le pain grillé du service

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();
            }
        });
    }
    //....
}

Vous pouvez également mettre la méthode showToast dans votre classe Application et afficher des toasts de n'importe où.

0
Khemraj