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é.
Toast.makeText
renvoie un objet Toast
. Appelez cancel()
sur cet objet pour l'annuler.
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
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.
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();
}
Utilisez la méthode cancel de tost: toast.cancel ();
Toast toast;
private void showToast(String text) {
if (toast!=null)
toast.cancel();
toast = Toast.makeText(context, text, Toast.LENGTH_SHORT);
toast.show();
}