Android
Utwórz Singleton Class dla wiadomości Toast
Szukaj…
Wprowadzenie
Wiadomości Toast to najprostszy sposób przekazywania informacji zwrotnej użytkownikowi. Domyślnie Android zapewnia grzankę wiadomości w kolorze szarym, w której możemy ustawić wiadomość i czas jej trwania. Jeśli potrzebujemy stworzyć bardziej konfigurowalny i wielokrotnego użytku toast, możemy go zrealizować samodzielnie, korzystając z niestandardowego układu. Co ważniejsze, kiedy go wdrażamy, użycie wzorca projektowego Singelton ułatwi utrzymanie i rozwój niestandardowej klasy wiadomości toast.
Składnia
- Toast Toast (kontekst)
- void setDuration (int czas trwania)
- void setGravity (int gravity, int xOffset, int yOffset)
- void setView (Zobacz widok)
- void show ()
Parametry
Parametr | Detale |
---|---|
kontekst | Odpowiedni kontekst, w którym należy wyświetlić wiadomość z toastem. Jeśli użyjesz tego w słowie aktywności przekaż słowo kluczowe „this” lub Jeśli użyjesz go w frustracji, przekaż jako „getActivity ()”. |
widok | Utwórz widok niestandardowy i przekaż temu obiektowi widok. |
powaga | Podaj położenie grawitacyjne tostera. Cała pozycja została dodana w klasie Grawitacji jako zmienne statyczne. Najczęstsze pozycje to Gravity.TOP, Gravity.BOTTOM, Gravity.LEFT, Gravity.RIGHT. |
xOffset | Przesunięcie w poziomie komunikatu toast. |
yOffset | Przesunięcie pionowe wiadomości toast. |
Trwanie | Czas trwania pokazu toastowego. Możemy ustawić Toast.LENGTH_SHORT lub Toast.LENGTH_LONG |
Uwagi
Wiadomość Toast to prosty sposób na przekazanie użytkownikowi informacji zwrotnej na temat czegoś, co się dzieje. Jeśli potrzebujesz bardziej zaawansowanego sposobu przekazywania opinii, możesz użyć okien dialogowych lub paska przekąsek.
Aby uzyskać więcej informacji na temat wiadomości toast, sprawdź tę dokumentację. https://developer.android.com/reference/android/widget/Toast.html
Stwórz własną klasę singleton do masaży tostowych
Oto, jak utworzyć własną klasę singletonów dla wiadomości tostowych. Jeśli Twoja aplikacja musi pokazywać komunikaty o sukcesie, ostrzeżeniach i komunikatach o niebezpieczeństwie dla różnych przypadków użycia, możesz użyć tej klasy po zmodyfikowaniu jej według własnych specyfikacji.
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();
}
}