Custom Toast

আমরা আমাদের অ্যাপের ভিতর ইউজারকে কোন ম্যাসেজ দেখানোর জন্য প্রায়ই Toast ব্যাবহার করেছি । Toast  এ ইউজারকে সেই ম্যাসেজই দেয়া হয় যেটা ইউজার ম্যাসেজটা মিস করে ফেললেও যাতে কোন অসুবিধা নাহ হয় । আজকে আমরা দেখবো কিভাবে এই Toast এর ডিজাইন টা আমাদের নিজের মত করে তৈরি করতে পারি ।

আমরা একটি বাটন নিবো যেখানে ক্লিক করলে আমাদের লেআউট এ তৈরি করা Toast দেখাবে ।
দেখুন আমরা এতদিন যেভাবে Toast  এ ম্যাসেজ দিছি তার ডিজাইন থেকে একদম আলাদা ।
 তো চলুন শুরু করা যাক । প্রথমেই বাটন টা তৈরি করে ফেলি ।

activity_main.xml -

 <?xml version="1.0" encoding="utf-8"?>  
 <LinearLayout  
   xmlns:android="http://schemas.android.com/apk/res/android"  
   xmlns:app="http://schemas.android.com/apk/res-auto"  
   xmlns:tools="http://schemas.android.com/tools"  
   android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   android:orientation="vertical"  
   android:gravity="center"  
   tools:context="com.example.user.learnfromyoutube.MainActivity">  
   <Button  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Display Toast"  
     android:textAllCaps="false"  
     android:textSize="25sp"  
     android:onClick="displayToast"  
     android:background="@color/colorPrimary"  
     android:padding="8dp"  
     android:textColor="#ffffff"/>  
 </LinearLayout>  

এবার কাস্টম টোস্ট তৈরি করার জন্য নতুন একটি Layout resource file খুলতে হবে । আমি নাম দিলাম displaytoast.xml । এর ভিতর একটি ইমেজভিউ আর একটি টেক্সটভিউ নিলাম । এখানে রুট লেআউট এর ও আইডি দিয়ে দিয়েছি কারন পরে ব্যাখ্যা করবো ।

displaytoast.xml -

 <?xml version="1.0" encoding="utf-8"?>  
 <LinearLayout  
   xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"  
   android:layout_height="match_parent"  
   android:orientation="horizontal"  
   android:background="@color/colorAccent"  
   android:padding="15dp"  
   android:id="@+id/displayToast">  
   <ImageView  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:src="@drawable/snapchat"/>  
   <TextView  
     android:layout_width="wrap_content"  
     android:layout_height="wrap_content"  
     android:text="Display a Custom Toast"  
     android:textStyle="bold"  
     android:textSize="20sp"  
     android:layout_marginLeft="5dp"/>  
 </LinearLayout>  


এবার MainActivity.java তে  Toast দেখানোর কোড করা যাক -

 package com.example.user.learnfromyoutube;  
 import android.support.v7.app.AppCompatActivity;  
 import android.os.Bundle;  
 import android.util.Log;  
 import android.view.Gravity;  
 import android.view.LayoutInflater;  
 import android.view.View;  
 import android.view.ViewGroup;  
 import android.widget.TextView;  
 import android.widget.Toast;  
 public class MainActivity extends AppCompatActivity {  
   @Override  
   protected void onCreate(Bundle savedInstanceState) {  
     super.onCreate(savedInstanceState);  
     setContentView(R.layout.activity_main);  
   }  
   public void displayToast(View view) {  
     LayoutInflater inflater = getLayoutInflater();  
     View v= inflater.inflate(R.layout.displaytoast, (ViewGroup) findViewById(R.id.displayToast));  
     Toast toast = new Toast(MainActivity.this);  
     toast.setDuration(toast.LENGTH_SHORT);  
     toast.setView(v);  
     toast.show();  
   }  
 }  

বাটনের ভিতর onClick ম্যাথডে আমরা displayToast দিয়ে দিছিলাম ।

প্রথমে আমরা  LayoutInflater এর অব্জেক্ট তৈরি করলাম । আমরা আগেই জেনে আসছি যখন আমরা একটি xml ফাইলের ভিতর আরেকটি xml  ফাইল দেখাতে যাবো তখন  LayoutInflater  ব্যাবহার করতে হয় ।
এরপর LayoutInflater এর অব্জেক্ট এ আমরা যে ভিউটা দেখাবো সেটি তৈরি করে দিলাম এবং সেটি ভিউ ক্লাসের অব্জেক্ট এর ভিতরে রাখলাম । এখানে প্যারামিটার হিসেবে দুইটি ভ্যালু যাবে । প্রথমটি আমরা যে xml ফাইল দেখাবো সেটির নাম , এরপর সেই ফাইলের বিভিন ভিউ যে গ্রুপ এর ভিতরে আছে মানে রুট লেআউট এর আইডির নাম । যা displaytoast.xml তৈরির সময়ে আমি বলেছিলাম ।

এরপর আমরা  Toast ক্লাসের অব্জেক্ট তৈরি করলাম এবং এখানে প্যারামিটার হিসেবে আমরা কোন Activity তে দেখাবো সেটির নাম দিয়েছি । এরপর Toast এর ডিউরেশন কতটুকু হবে তা দিলাম।

এরপর Toast এর অব্জেক্ট এর সাথে আমরা ভিউ ক্লাসের অব্জেক্ট এ যে ভিউটা রেখেছিলাম সেটি দিয়ে দিলাম । সর্বশেষ show() ম্যাথডের মাধ্যমে Toast টা দেখালাম ।

এবার অ্যাপ টা রান করে বাটনে ক্লিক করলে উপরের ছবির মত দেখা যাবে ।   😊😊😊

মন্তব্যসমূহ

এই ব্লগটি থেকে জনপ্রিয় পোস্টগুলি

Spinner View - 11 ( Android Bangla Tutorial)

ImageView ( Android Bangla Tutorial - )

Toggle Button - 10 ( Android Bangla Tutorial)