サーチ…


前書き

トーストメッセージは、ユーザーにフィードバックを提供する最も簡単な方法です。デフォルトでは、Androidは灰色のメッセージトーストを提供し、ここでメッセージとメッセージの期間を設定できます。よりカスタマイズ可能で再利用可能なトーストメッセージを作成する必要がある場合は、カスタムレイアウトを使用して独自に実装することができます。さらに重要なことに、私たちがそれを実装するとき、Singeltonデザインパターンを使用することで、カスタムトーストメッセージクラスの維持と開発が容易になります。

構文

  • トーストトースト(Context Context)
  • void setDuration(int duration)
  • void setGravity(int重力、int xOffset、int yOffset)
  • void setView(ビューの表示)
  • void show()

パラメーター

パラメータ詳細
コンテキストトーストメッセージを表示する必要がある関連コンテキスト。あなたが "this"キーワードを渡すか、または "getActivity()"としてフラクションパスで使用する場合は、これをアクティビティで使用します。
見るカスタムビューを作成し、そのビューオブジェクトをこれに渡します。
重力トースタの重力位置を渡す。すべての位置が静的変数としてGravityクラスの下に追加されました。最も一般的な位置はGravity.TOP、Gravity.BOTTOM、Gravity.LEFT、Gravity.RIGHTです。
xOffset トーストメッセージの水平オフセット。
yオフセットトーストメッセージの垂直オフセット。
期間トーストショーの期間。 Toast.LENGTH_SHORTまたはTOAST.LENGTH_LONGのいずれかを設定できます

備考

トーストメッセージは、何か起こっていることをユーザーにフィードバックする簡単な方法です。フィードバックを提供するためのより高度な方法が必要な場合は、ダイアログまたはスナックバーを使用できます。

トーストメッセージの詳細については、このドキュメントを参照してください。 https://developer.android.com/reference/android/widget/Toast.html

トーストマッサージ用の独自のシングルトンクラスを作成する

トーストメッセージのための独自のシングルトンクラスを作成する方法は次のとおりです。ユースケースごとに成功、警告、危険メッセージを表示する必要がある場合は、独自の仕様に変更した後でこのクラスを使用できます。

    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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow