Bước 1: Tạo 1 file layout cho cái Toast
Chú ý đặt id cho thẻ LinearLayout là toast_root_layout còn các view con cái nào muốn gán giá trị thì đặt ID
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFEB3B"
android:id="@+id/toast_root_layout"
android:padding="30dp"
>
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@android:drawable/ic_delete"/>
<TextView
android:id="@+id/tv_toast_content"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Nội dung toast"
android:textColor="#FF5722"
android:textSize="20dp"/>
</LinearLayout>
Bước 2: Trong activity viết một hàm xử lý hiển thị Toast như sau
void showCustomToast(Context context, String msg){
LayoutInflater inflater = getLayoutInflater();
View layout_toast = inflater.inflate(R.layout.layout_toast, (ViewGroup) findViewById(R.id.toast_root_layout));
// gán lại nội dung toast
TextView tv = layout_toast.findViewById(R.id.tv_toast_content);
tv.setText(msg); // gán nội dung bằng nội dung người dùng truyền vào hàm
Toast toast01 = new Toast(context);
toast01.setGravity(Gravity.CENTER_VERTICAL,0,0); // thiết lập vị trí hiển thị toast trên màn hình
toast01.setDuration(Toast.LENGTH_LONG); // thời gian hiển thị
toast01.setView(layout_toast);
toast01.show();
}
Bước 3: Trong sự kiện onCreate hoặc sự kiện bấm nút hoặc bất kỳ chỗ nào muốn hiển thị Toast thì bạn viết lệnh gọi hàm như sau:
showCustomToast(MainActivity.this, "Nội dung toast gán bằng code java");