72 votes

Android Toast Message ne s'affiche pas

J'ai un bouton. Lorsque l'utilisateur clique sur le bouton, il y a certaines conditions, cette condition n'est pas satisfaite alors il faut afficher le toast mais pas le message du toast....

Code : Modifié

 Button addMe = (Button)findViewById(R.id.addMe);
    addMe.setOnClickListener(new OnClickListener() {
           public void onClick(View v) {
               if(selectedReason.equals("--Select--")){
                   Log.i("TAG","-----");
                   Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();
               }else if(selectedType.equals("--Select--")){
                   Toast.makeText(getParent(), "Discount type can not be blank", Toast.LENGTH_SHORT).show();
               }else{
                   if(selectedType.equals("Value")){
                       if(spc_amount.getText().toString().equals("")){
                           Log.i("TAG","-----");
                           Toast.makeText(getBaseContext(), "Discount type can not be blank", Toast.LENGTH_SHORT).show();
                       }else{
                           if(Double.parseDouble(spc_amount.getText().toString()) > invoiceValue){
                               Toast.makeText(getBaseContext(), "Amonut can not be grater than invoice", Toast.LENGTH_SHORT).show();
                           }else{
                               Discount dis = new Discount();
                               dis.setCriteriaName(selectedReason);
                               dis.setDiscountValue(Double.parseDouble(spc_amount.getText().toString()));
                               spDisList.put(1,dis);
                               tl.removeAllViews();
                            loadTableLayout();
                           }

                       }
                   }
               }
           }
    });

J'ai essayé le contexte avec getParent() , getApplicationContext() , SpecialDiscountActivity.this & getBaseContext() mais ne fonctionne pas....

Ce site Toast message venant sous le Tab Activity Group

2 votes

Comme indiqué dans un commentaire ci-dessous, vous devez également activer l'option "Afficher les notifications" pour l'application afin que Toast fonctionne pour vous.

1 votes

Pourquoi avez-vous modifié le code pour inclure la solution ? Elle devrait être conservée pour contenir l'erreur, sinon cette question n'a pas de sens.

1 votes

Il y a aussi un problème courant : si vous n'êtes pas dans le thread principal, vous devez appeler runOnUiThread . Par exemple runOnUiThread(() -> Toast.makeText(getApplicationContext(), " ...", Toast.LENGTH_LONG).show());

123voto

Pocket Universe Points 1300

Essayez :

Toast.makeText(getBaseContext(), "Reason can not be blank", Toast.LENGTH_SHORT).show();

C'est le .show() que vous avez omis partout qui fait que tous vos toasts s'installent, mais ne s'exécutent jamais.

10 votes

Oh mon dieu pourquoi. J'ai été bloqué quelques heures à cause de ça !

5 votes

Ceci. est. stupide.

0 votes

J'ai l'impression que je vais faire cette erreur plusieurs fois. Si vous faites du jQuery, c'est un peu similaire à leur méthode pour .show() y .hide() Donc, si vous vous rappelez que le Toast est toujours caché par défaut, cela peut vous aider à vous souvenir de l'opération suivante .show()

75voto

user2288580 Points 41

Veuillez m'excuser si ce n'est pas la solution à votre problème, mais j'ai accidentellement décoché le paramètre "Afficher les notifications" de l'application une fois. Il serait peut-être bon d'aller dans les paramètres de votre appareil/application/gestionnaire et de vérifier ce paramètre.

5 votes

Je n'aurais jamais pensé à ça... Je pensais que ce paramètre ne cachait que l'icône de notification de mon service, mais vous avez raison, il cache également les toasts.

3 votes

Whoa, j'étais extrêmement sceptique à ce sujet, mais au moins sur la version 4.4.4, la désactivation des notifications arrête également l'affichage des toasts.

0 votes

J'ai fait ça aussi et j'ai perdu 30 minutes de mon temps :(

64voto

Prabuddha Points 37089

Je pense que vous manquez .show(); Il devrait être...

Toast.makeText(getBaseContext(), "Amount can not be grater than invoice",
                                                     Toast.LENGTH_SHORT).show();

1 votes

Merci @LalitPoptani J'ai utilisé Toast.makeText(SalesActivityGroup.group.getParent(), "Amonut ne peut pas être plus gros que la facture", Toast.LENGTH_SHORT).show() ;

0 votes

@NagkeeranPiraba une autre chose à propos de votre question est que vous devriez avoir mentionné que vous utilisez Tab.

0 votes

Je ne peux pas croire que c'était mon erreur aussi ! haha. Merci beaucoup de m'avoir prévenu !

52voto

Ali Motameni Points 524

Redémarrez simplement votre appareil ! Cela a résolu mon problème.

2 votes

OMG oui, pour tous ceux qui lisent cette réponse, il veut dire "redémarrez votre appareil". J'ai failli rétrograder votre réponse... xP

2 votes

Mec, tu viens de me sauver une journée entière ! Je montrais un toast comme Toast.makeText(context, message, Toast.LENGTH_SHORT).show(); et ça n'apparaissait pas soudainement. J'ai remis en question mes capacités et le sens de la vie... Le redémarrage de l'appareil l'a réparé !

0 votes

Wow. Fonctionne en 2020. Pixel 2 Device Build QQ1A.191205.008). Excellent !

13voto

Philipp Wendt Points 585

Peut-être n'êtes-vous pas dans le fil de discussion de l'interface utilisateur ? Essayez ceci : http://developer.Android.com/reference/Android/app/Activity.html#runOnUiThread%28java.lang.Runnable%29

1 votes

Ne pas appeler sur le fil de l'assurance-chômage me fait trébucher plus souvent que je ne veux bien l'admettre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X