أكواد أندرويد – Toast Message

بناء على الطلب في الحلقة السابقة من قبل أحد زوار المدونة أضع في هذه المرة كوداً لاستعمال الـ Toast Message أو التنبيه الطافي. الكود عبارة عن كلاس يستعمل الـ Toast من خلال واجهة مخصصة Custom Layout. استعملت هذا الكود في تطبيق iAndroidQuran وأحببت وضعه هنا.

مثال على التنبيه من تطبيق iAndroidQuran:

الواجهة الرسومية – toast_layout.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:id="@+id/toast_layout_root"
 android:orientation="horizontal"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:padding="10dp"
 android:layout_marginLeft="25dp"
 android:layout_marginRight="25dp"
 android:background="@drawable/toast_background"
 >
 <ImageView android:id="@+id/custom_toast_image"
 android:layout_width="42px"
 android:layout_height="42px"
 android:layout_marginRight="10dp"
 android:layout_gravity="center"
 />
 <TextView android:id="@+id/custom_toast_message"
 android:layout_width="200dp"
 android:layout_height="wrap_content"
 android:textColor="#000"
 />
</LinearLayout>

ملف الجافا:


package com.iandroid.test; // قم بتغيير الحزمة إلى الحزمة الخاصة بتطبيقك

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.iandroid.test.R;  // قم بتغيير الحزمة إلى الحزمة الخاصة بتطبيقك

public class ToastNotification {

private LayoutInflater inflater;
 private View toastLayout;
 private Toast toast;
 private ImageView toastImage;
 private TextView toastText;
 private Context mContext;

 public ToastNotification(Context context)
 {
 inflater = LayoutInflater.from(context);
 toastLayout = inflater.inflate(R.layout.toast_layout, null);
 toast = new Toast(context);

 toastImage = (ImageView) toastLayout.findViewById(R.id.custom_toast_image);
 toastText = (TextView) toastLayout.findViewById(R.id.custom_toast_message);

 this.mContext = context;
 }

 /**
 * أظهر الرسالة للمستخدم
 *
 * @param message the message
 */
 public void show(int imageId, int messageId)
 {
 toastImage.setImageResource(imageId);
 toastText.setText(mContext.getText(messageId));
 toast.setDuration(Toast.LENGTH_LONG);
 toast.setView(toastLayout);
 toast.show();
 }
}

كيفية الاستعمال:

ToastNotification toastMessage = new ToastNotification(this);
toastMessage.show(R.drawable.toast_error, R.string.toast_message);
أتمنى أن يكون الكود مفيداً.

أضف تعليقاً

الحقول المطلوبة موسومة بالعلامة *.