Android
トーストメッセージのシングルトンクラスを作成する
サーチ…
前書き
トーストメッセージは、ユーザーにフィードバックを提供する最も簡単な方法です。デフォルトでは、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