web-dev-qa-db-fra.com

Comment annuler Toast

J'ai développé une application Android et je suis confronté à un problème avec Toast. Supposons que j'affiche un toast, il est affiché dans la fenêtre de l'application. Lorsqu'une boîte de dialogue apparaît, le pain grillé ne disparaît pas instantanément.

Je veux savoir comment je peux annuler le pain grillé.

24
DroidBot

Toast.makeText renvoie un objet Toast. Appelez cancel() sur cet objet pour l'annuler.

43
EboMike

La durée la plus courte que vous pouvez spécifier pour le pain grillé est Toast.LENGTH_SHORT, qui a la valeur 0 mais est en réalité 2000 milliseconds long. Si vous voulez que ce soit plus court que ça, essayez ceci:

    final Toast toast = Toast.makeText(ctx, "This message will disappear in 1 second", Toast.LENGTH_SHORT);
    toast.show();

    Handler handler = new Handler();
        handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               toast.cancel(); 
           }
    }, 1000); //specify delay here that is shorter than Toast.LENGTH_SHORT
6
noypiscripter

Je pense qu'il n'est pas nécessaire de créer un pain grillé personnalisé.

Ne créez qu'une seule instance de la classe Toast. Nous venons de définir le texte du pain grillé avec toast.setText("string") et d'appeler la méthode toast.cancel() dans la méthode onDestroy().

Extrait de code de travail comme suit:

package co.toast;

import Android.annotation.SuppressLint;
import Android.app.Activity;
import Android.os.Bundle;
import Android.view.View;
import Android.view.View.OnClickListener;
import Android.widget.Button;
import Android.widget.Toast;

public class ShowToastActivity extends Activity {
    private Toast toast = null;
    Button btnShowToast;

    @SuppressLint("ShowToast")
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // creates only one toast object..
        toast = Toast.makeText(getApplicationContext(), "", Toast.LENGTH_LONG);

        btnShowToast = (Button) findViewById(R.id.btnShowToast);

        btnShowToast.setOnClickListener(new OnClickListener() {

             @Override
             public void onClick(View v) {

                // only set text to toast object..
                toast.setText("My toast!");
                toast.show();
            }
        });
    }

    @Override
    protected void onDestroy() 
    {
        toast.cancel();
        super.onDestroy();
    }

    @Override
    protected void onStop () {
        super.onStop();
        toast.cancel();
    }
}

J'espère que cela vous aidera.

4
Swapnil Sonar

Ceci est un exemple de base utilisant la méthode cancel() de Toast.

Toast mytoast;
mytoast = Toast.makeText(getApplicationContext(), "Hi Ho Jorgesys! ", Toast.LENGTH_LONG);
mytoast.show();
....
....
....
if(CancelToast){
  mytoast.cancel();
}
0
Elenasys

Utilisez la méthode cancel de tost: toast.cancel ();

0
Mahesh
Toast toast;

private void showToast(String text) {
    if (toast!=null)
        toast.cancel();
    toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
    toast.show();
}
0
Dan Alboteanu