Android
Maak Singleton Class voor Toast-bericht
Zoeken…
Invoering
Toast-berichten zijn de meest eenvoudige manier om feedback aan de gebruiker te geven. Standaard biedt Android grijze toast met berichten waar we het bericht en de duur van het bericht kunnen instellen. Als we meer aanpasbare en herbruikbare toast-berichten moeten maken, kunnen we deze zelf implementeren met behulp van een aangepaste lay-out. Belangrijker is dat wanneer we het implementeren, het gebruik van het Singelton-ontwerppatroon het gemakkelijk maakt voor het onderhouden en ontwikkelen van de aangepaste toast-berichtklasse.
Syntaxis
- Toast Toast (context contex)
- void setDuration (int duur)
- void setGravity (int zwaartekracht, int xOffset, int yOffset)
- void setView (weergave bekijken)
- ongeldige show ()
parameters
Parameter | gegevens |
---|---|
context | Relevante context die uw toast-bericht moet weergeven. Als u dit gebruikt in de activiteitspas "dit" trefwoord of als u in fragmenten gebruikt als "getActivity ()". |
visie | Maak een aangepaste weergave en geef dat weergaveobject hieraan door. |
zwaartekracht | Passeer de zwaartekrachtpositie van de broodrooster. Alle positie is toegevoegd onder de klasse Zwaartekracht als de statische variabelen. De meest voorkomende posities zijn Gravity.TOP, Gravity.BOTTOM, Gravity.LEFT, Gravity.RIGHT. |
xOffset | Horizontale offset van het toastbericht. |
yOffset | Verticale offset van het toastbericht. |
looptijd | Duur van de toastshow. We kunnen Toast.LENGTH_SHORT of Toast.LENGTH_LONG instellen |
Opmerkingen
Toast-bericht is een eenvoudige manier om de gebruiker feedback te geven over wat er gebeurt. Als je een meer geavanceerde manier nodig hebt om feedback te geven, kun je dialogen of snackbar gebruiken.
Raadpleeg deze documentatie voor meer informatie over het toastbericht. https://developer.android.com/reference/android/widget/Toast.html
Maak een eigen singleton-klasse voor toastmassages
Hier is hoe je je eigen singleton-klasse voor toast-berichten kunt maken. Als je toepassing succes-, waarschuwings- en gevarenberichten voor verschillende gebruikssituaties moet tonen, kun je deze klasse gebruiken nadat je het hebt aangepast aan je eigen specificaties.
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();
}
}