public static void toast(String message) {
toast(message, Toast.LENGTH_SHORT);
}
public static void toast(String message, int length) {
Context CONTEXT = getApplicationContext;
Inflater INFLATER = (LayoutInflater) CONTEXT.getSystemService(LAYOUT_INFLATER_SERVICE);
Typeface FONT = Typeface.createFromAsset(getAssets(), "fonts/IRANSansMobile.ttf");
Toast toast = new Toast(CONTEXT);
View view = INFLATER.inflate(R.layout.toast, null);
CustomTextView txtMessage = (CustomTextView) view.findViewById(R.id.txtMessage);
txtMessage.setTypeface(FONT);
txtMessage.setText(message);
toast.setView(view);
toast.setDuration(length);
toast.show();
}
حالا این متد چیکار میکنه؟ اول Context یا زمینه اجرای برنامه رو میگیره تا Toast رو روی اون اجرا کنه. من از getApplicationContext استفاده کردم تا حتی اگه برنامه در پسزمینه درحال اجرا بود و سرویس خاصی اجرا شد، بازم بتونیم بدون نمایش یه اکتیویتی خاص، پنجره Toast رو نمایش بدیم. بعد با کمک Inflater لیاوت toast که توی مرحله قبل ساختیم رو تبدیل به یه شئ از کلاس View میکنیم و همچنین فونت دلخواهمون رو هم بارگذاری میکنیم که بتونیم بعنوان Typeface برای متن انتخاب کنیم تا متن با این فونت ظاهر بشه (این قسمت هم اختیاریه). درنهایت متن رو تنظیم میکنیم و toast رو نمایش میدیم منتها قبلش با setView، نمایی که با کمک Layout ساختیم رو برای toast تعیین میکنیم.
برچسب:
نویسنده: خنجی