Custom Toast
আমরা আমাদের অ্যাপের ভিতর ইউজারকে কোন ম্যাসেজ দেখানোর জন্য প্রায়ই Toast ব্যাবহার করেছি । Toast এ ইউজারকে সেই ম্যাসেজই দেয়া হয় যেটা ইউজার ম্যাসেজটা মিস করে ফেললেও যাতে কোন অসুবিধা নাহ হয় । আজকে আমরা দেখবো কিভাবে এই Toast এর ডিজাইন টা আমাদের নিজের মত করে তৈরি করতে পারি ।
আমরা একটি বাটন নিবো যেখানে ক্লিক করলে আমাদের লেআউট এ তৈরি করা Toast দেখাবে ।
দেখুন আমরা এতদিন যেভাবে Toast এ ম্যাসেজ দিছি তার ডিজাইন থেকে একদম আলাদা ।
তো চলুন শুরু করা যাক । প্রথমেই বাটন টা তৈরি করে ফেলি ।
activity_main.xml -
এবার কাস্টম টোস্ট তৈরি করার জন্য নতুন একটি Layout resource file খুলতে হবে । আমি নাম দিলাম displaytoast.xml । এর ভিতর একটি ইমেজভিউ আর একটি টেক্সটভিউ নিলাম । এখানে রুট লেআউট এর ও আইডি দিয়ে দিয়েছি কারন পরে ব্যাখ্যা করবো ।
displaytoast.xml -
এবার MainActivity.java তে Toast দেখানোর কোড করা যাক -
বাটনের ভিতর onClick ম্যাথডে আমরা displayToast দিয়ে দিছিলাম ।
প্রথমে আমরা LayoutInflater এর অব্জেক্ট তৈরি করলাম । আমরা আগেই জেনে আসছি যখন আমরা একটি xml ফাইলের ভিতর আরেকটি xml ফাইল দেখাতে যাবো তখন LayoutInflater ব্যাবহার করতে হয় ।
এরপর LayoutInflater এর অব্জেক্ট এ আমরা যে ভিউটা দেখাবো সেটি তৈরি করে দিলাম এবং সেটি ভিউ ক্লাসের অব্জেক্ট এর ভিতরে রাখলাম । এখানে প্যারামিটার হিসেবে দুইটি ভ্যালু যাবে । প্রথমটি আমরা যে xml ফাইল দেখাবো সেটির নাম , এরপর সেই ফাইলের বিভিন ভিউ যে গ্রুপ এর ভিতরে আছে মানে রুট লেআউট এর আইডির নাম । যা displaytoast.xml তৈরির সময়ে আমি বলেছিলাম ।
এরপর আমরা Toast ক্লাসের অব্জেক্ট তৈরি করলাম এবং এখানে প্যারামিটার হিসেবে আমরা কোন Activity তে দেখাবো সেটির নাম দিয়েছি । এরপর Toast এর ডিউরেশন কতটুকু হবে তা দিলাম।
এরপর Toast এর অব্জেক্ট এর সাথে আমরা ভিউ ক্লাসের অব্জেক্ট এ যে ভিউটা রেখেছিলাম সেটি দিয়ে দিলাম । সর্বশেষ show() ম্যাথডের মাধ্যমে 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 টা দেখালাম ।
এবার অ্যাপ টা রান করে বাটনে ক্লিক করলে উপরের ছবির মত দেখা যাবে । 😊😊😊
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন