Android
Singleton-Klasse für Toast-Nachricht erstellen
Suche…
Einführung
Toastmeldungen sind die einfachste Art, dem Benutzer eine Rückmeldung zu geben. Standardmäßig bietet Android eine graue Nachrichtentaste, in der Sie die Nachricht und die Dauer der Nachricht einstellen können. Wenn Sie eine anpassbarere und wiederverwendbare Toastnachricht erstellen müssen, können Sie sie mithilfe eines benutzerdefinierten Layouts selbst implementieren. Noch wichtiger ist bei der Implementierung, dass die Verwendung des Singelton-Entwurfsmusters die Wartung und Entwicklung der benutzerdefinierten Toast-Nachrichtenklasse vereinfacht.
Syntax
- Toast Toast (Kontext-Kontext)
- void setDuration (int duration)
- void setGravity (int Schwerkraft, int xOffset, int yOffset)
- SetView void (View View)
- void show ()
Parameter
Parameter | Einzelheiten |
---|---|
Kontext | Relevanter Kontext, der Ihre Toastnachricht anzeigen muss. Wenn Sie dies in der Aktivität verwenden, übergeben Sie "dieses" Schlüsselwort oder wenn Sie in fragement als "getActivity ()" verwenden. |
Aussicht | Erstellen Sie eine benutzerdefinierte Ansicht, und übergeben Sie das Ansichtsobjekt an diese. |
Schwere | Übergeben Sie die Schwerkraftposition des Toasters. Alle Positionen wurden unter der Schwerkraftklasse als statische Variablen hinzugefügt. Die häufigsten Positionen sind Gravity.TOP, Gravity.BOTTOM, Gravity.LEFT, Gravity.RIGHT. |
xOffset | Horizontaler Versatz der Toastnachricht. |
yOffset | Vertikaler Versatz der Toastnachricht. |
Dauer | Dauer der Toastshow. Wir können entweder Toast.LENGTH_SHORT oder Toast.LENGTH_LONG einstellen |
Bemerkungen
Die Toast-Nachricht ist eine einfache Möglichkeit, dem Benutzer eine Rückmeldung zu geben, wenn etwas passiert. Wenn Sie eine fortgeschrittenere Methode zur Rückmeldung benötigen, können Sie Dialoge oder eine Snackbar verwenden.
Weitere Informationen zur Toastnachricht finden Sie in dieser Dokumentation. https://developer.android.com/reference/android/widget/Toast.html
Erstellen Sie eine eigene Singleton-Klasse für Toastmassagen
So erstellen Sie Ihre eigene Singleton-Klasse für Toast-Nachrichten: Wenn Ihre Anwendung Erfolg, Warnung und die Gefahrennachrichten für verschiedene Anwendungsfälle anzeigen muss, können Sie diese Klasse verwenden, nachdem Sie sie an Ihre eigenen Spezifikationen angepasst haben.
public class ToastGenerate {
private static ToastGenerate ourInstance;
public ToastGenerate (Context context) {
this.context = context;
}
public static ToastGenerate getInstance(Context context) {
if (ourInstance == null)
ourInstance = new ToastGenerate(context);
return ourInstance;
}
//pass message and message type to this method
public void createToastMessage(String message,int type){
//inflate the custom layout
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout toastLayout = (LinearLayout) layoutInflater.inflate(R.layout.layout_custome_toast,null);
TextView toastShowMessage = (TextView) toastLayout.findViewById(R.id.textCustomToastTopic);
switch (type){
case 0:
//if the message type is 0 fail toaster method will call
createFailToast(toastLayout,toastShowMessage,message);
break;
case 1:
//if the message type is 1 success toaster method will call
createSuccessToast(toastLayout,toastShowMessage,message);
break;
case 2:
createWarningToast( toastLayout, toastShowMessage, message);
//if the message type is 2 warning toaster method will call
break;
default:
createFailToast(toastLayout,toastShowMessage,message);
}
}
//Failure toast message method
private final void createFailToast(LinearLayout toastLayout,TextView toastMessage,String message){
toastLayout.setBackgroundColor(context.getResources().getColor(R.color.button_alert_normal));
toastMessage.setText(message);
toastMessage.setTextColor(context.getResources().getColor(R.color.white));
showToast(context,toastLayout);
}
//warning toast message method
private final void createWarningToast( LinearLayout toastLayout, TextView toastMessage, String message) {
toastLayout.setBackgroundColor(context.getResources().getColor(R.color.warning_toast));
toastMessage.setText(message);
toastMessage.setTextColor(context.getResources().getColor(R.color.white));
showToast(context, toastLayout);
}
//success toast message method
private final void createSuccessToast(LinearLayout toastLayout,TextView toastMessage,String message){
toastLayout.setBackgroundColor(context.getResources().getColor(R.color.success_toast));
toastMessage.setText(message);
toastMessage.setTextColor(context.getResources().getColor(R.color.white));
showToast(context,toastLayout);
}
private void showToast(View view){
Toast toast = new Toast(context);
toast.setGravity(Gravity.TOP,0,0); // show message in the top of the device
toast.setDuration(Toast.LENGTH_SHORT);
toast.setView(view);
toast.show();
}
}