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();
        }
    }


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow