Android-Stop-toast-Benachrichtigung programmatisch?
Gibt es eine Möglichkeit, ich kann aufhören, eine toast-Nachricht programmgesteuert?
Sagen, dass ich eine Taste, die ich klicken Sie, um einen Bildlauf durch toast-Nachrichten, und in den onclick-event und ich wollte halt alle in der Warteschlange und zeigen nur die neuen, wie soll ich das tun?
Eine vereinfachte version von meinem code ist unten
Code:
public class Help extends Activity{
LinearLayout background;
int screenNo = 1;
Toast toast;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.help);
background = (LinearLayout) findViewById(R.id.helpLayout);
ImageButton next = (ImageButton) findViewById(R.id.imageButtonNext);
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
toast.cancel();
showNextScreen();
}});
}
private void showMessageBox(String title, String msg) {
AlertDialog.Builder b = new AlertDialog.Builder(this);
b.setTitle(title);
b.setMessage(msg);
b.setPositiveButton("Next", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
showNextScreen();
}});
b.setNegativeButton("Quit Help", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
returnHome();
}});
b.show();
}
private void showNextScreen() {
int time = 7000;
String tstMsg = "error";
switch (screenNo) {
case 1:
break;
case 2:
break;
case 3:
break;
case 4:
break;
case 5:
toast.cancel();
returnHome();
break;
default:
break;
}
if(screenNo < 5)
{
toast=Toast.makeText(this, tstMsg, time);
toast.setGravity(Gravity.BOTTOM, 0, 0);
toast.show();
screenNo++;
}
}
}
- Nicht Toast#cancel() das, was Sie brauchen? developer.android.com/reference/android/widget/...
- Möglicherweise ein Duplikat von stackoverflow.com/questions/2755277/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, wie ich erreicht diese.
definieren obigen code in separaten Klassen und instanziieren die Klasse, wo Sie wollen, Nachricht anzeigen,die Sie mit ihm getan.
Erstellen Sie eine benutzerdefinierte Globale Objekt
Initialisieren Sie im onCreate
Wann immer Sie brauchen, um einen Toast
Töten alle die Nachricht auf Anforderung onPause oder onDestroy
Sind Sie alle frei, um stornieren Sie die
Toast
Objekt.Toast
als Referenz, wenn Sie anrufenmakeText(...)
und danach können Sie ihn Abbrechen. Die Warteschlange kann nur aufgehoben werden durch den Aufrufcancel()
auf einzelneToast
Objekte.Toast
s, die Sie erstellen. Wenn Sie möchten, stornieren Sie haben zu nennencancel()
auf jedenToast
, die Sie erstellt haben.Toast
s interrupt?Toast
s, die aktiv sind, bevor die Anzeige neue, oder wie @TomS-Staaten - nur den text ändern. 🙂