Android
Skapa Singleton-klass för rostat bröd
Sök…
Introduktion
Toastmeddelanden är det enklaste sättet att ge feedback till användaren. Som standard tillhandahåller Android grå färgmeddelande toast där vi kan ställa in meddelandet och meddelandets varaktighet. Om vi behöver skapa ett mer anpassningsbart och återanvändbart toastmeddelande kan vi implementera det själv med användning av en anpassad layout. Ännu viktigare när vi implementerar det kommer användningen av Singelton designmönster att göra det enkelt för att underhålla och utveckla den anpassade toastmeddelandeklassen.
Syntax
- Toast Toast (Context context)
- void setDuration (int varaktighet)
- void setGravity (int gravity, int xOffset, int yOffset)
- void setView (View view)
- void show ()
parametrar
Parameter | detaljer |
---|---|
sammanhang | Relevant kontext som måste visa ditt toastmeddelande. Om du använder detta i aktivitetspasset "detta" nyckelord eller Om du använder i friktionskort som "getActivity ()". |
se | Skapa en anpassad vy och skicka det visningsobjektet till detta. |
allvar | Passera brödrostens tyngdläge. Alla positioner har lagts till under tyngdeklassen som de statiska variablerna. De vanligaste positionerna är Gravity.TOP, Gravity.BOTTOM, Gravity.LEFT, Gravity.RIGHT. |
XOffset | Horisontell förskjutning av toastmeddelandet. |
'Yoffset' | Vertikal förskjutning av toastmeddelandet. |
varaktighet | Toast-showens varaktighet. Vi kan ställa in antingen Toast.LENGTH_SHORT eller Toast.LENGTH_LONG |
Anmärkningar
Rostat bröd är ett enkelt sätt att ge feedback till användaren om att något händer. Om du behöver ett mer avancerat sätt att ge feedback kan du använda dialogrutor eller snackbar.
För att få mer information om toastmeddelandet, se denna dokumentation. https://developer.android.com/reference/android/widget/Toast.html
Skapa en egen singleton-klass för toastmassage
Så här skapar du din egen singleton-klass för toastmeddelanden. Om din applikation måste visa framgång, varning och farmeddelanden för olika användningsfall kan du använda den här klassen efter att du har ändrat den till dina egna specifikationer.
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();
}
}