অ্যান্ড্রয়েড ইন্টারমিডিয়েট টিউটোরিয়াল ১০ঃ ডায়লগ বক্স বানানো

সালাম সবাইকে। ৯ নাম্বার টিউটোরিয়াল কাস্টম ফন্ট পাবেন এখানে।
আজ শিখবো আমরা অ্যান্ড্রয়েড এর ডায়লগ বক্স। ধরুন, আপনার অ্যাপ ব্যবহার করলে ইউজারের লগ ক্রিয়েট হয়। লগ মানে লগিন ইনফম্যাশন, রেজিস্ট্রেশন ইনফরম্যাশন, লগিন ফেইল্ড টাইপের নানা ইনফরম্যাশন। সেই লগ ডিলিট করার জন্য একটা বাটন আছে। বাটনে ক্লিক করলেই সেটা ডিলিট হয়ে যায়। আপনার ইউজার ভুলে ডিলিটে ক্লিক করলো, এরপর ডিলিট হয়ে গেলে আপনি সিউর থাকেন সে আপনাকে অভিশাপ দিবে! এসব ক্ষেত্রে আমরা ডায়লগ ব্যবহার করবো। অর্থ্যত কোন ডিসিশান নেওয়ার আগে জিজ্ঞেস করে নিবো সে সিউর কিনা!

প্রথমে জানি ডায়লগ বক্স কি?
সাধারনত ইউজার থেকে কোন ডিসিশান নিতে তাকে দ্বিতীয়বার জিজ্ঞেস করার প্রসেস হচ্ছে ডায়লগ। আমাদের অ্যান্ড্রয়েডের ডায়লগ ক্লাস এর ৩টা টাইপের সাবক্লাস আছে। সেগুলো হলো,

১/ Alert Dialogue ( এলার্ট শো করতে )
২/ Date Picker / Time Picker Dialogue ( ডায়লগের মাধ্যমে ডেট টাইম পিক করতে )
৩/ Progress Dialog ( কোন কিছুর প্রোগ্রেস বুঝাতে, যেমন ডাউনলোড প্রোগ্রেস )

alertd ialog

alert dialog example

 

আজকে আমরা একটা এলার্ট ডায়লগ নিয়ে কাজ করবো। ডেট পিকার আর প্রোগ্রেস ডায়লগ এখনি দেখাবো না। পরে সুযোগ হলে হয়ত লিখবো।

একটা এলার্ট ডায়লগ বক্সে ৩টা পার্ট থাকে। সেগুলো হচ্ছে,
১/ টাইটেল, যেটা ডালগের টাইটল বলা থাকে।
২/ টেক্সট বডি, যেখানে নর্মালি আর ইউ সিউর টাইপের প্রশ্ন করা হয়।
৩/ একশন বাটন, এখানে ডিসিশান বাটনগুলো থাকে। ওকে, ক্যান্সেল টাইপ।
নিচে যে ডিসিশান বাটন থাকে, সেগুলা আবার তিন ধরনের হয়। সেগুলা হচ্ছেঃ
১/ পজেটিভ বাটন। এই বাটনে ক্লিক করলে পজেটিভ কিছু হবে। যেমন, Do you want to continue? এই প্রশ্নের পজেটিভ বাটন হবে YES ।
২/ নেগেটিভ বাটন। উপরের উদাহরণ এর নো আন্সার।
৩/ নিউট্রাল। এটা একচুয়েলি হ্যাঁও না, আবার নাও না। হতে পারে, ক্যান্সেল বাটন, ওয়েট বাটন।

এবার প্রজেক্টে যাওয়া যাক।
প্রথমে নিচের ছবির মত করে প্রজেক্ট ক্রিয়েট করুন। সেইম নামে।

 

alert dialog project creat

alert dialog project create

প্রথমে দেখবো, ডায়লগ বক্স দেখাতে আমাদের কি কোড লাগবে। নিচে দেখি।

AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Deleting File..");

builder.setMessage("Are your sure?");

builder.setIcon(R.drawable.mylogo);

builder.setCancelable(false);

প্রথম লাইনে আমরা builder অব্জেক্ট নেই এলার্ট ডায়লগ ক্লাসের।
পরের লাইনে, আমাদের ডায়লগ বক্সের টাইটেল।
তারপরের লাইনে ডায়লগ বক্সের টেক্সট বডি, যেখানে আমরা ইউজারকে প্রশ্ন করবো।
তারপরের লাইনে আমরা ডায়লগ বক্সে একটা আইকন জুড়ে দিলাম, যেটা drawable ফোল্ডারে রয়েছে।
শেষ লাইন হচ্ছে ডায়লগ বক্সের ফাকা জায়গায় টাচ করলে বক্সটা থাকবে না চলে যাবে তার জন্য। ফলস দিলে এটা যাবেনা, ট্রু দিলে চলে যায়।
নিচের মেথড হচ্ছে পজেটিভ বাটনের জন্য।

builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
  
 @Override
    public void onClick(DialogInterface dialog, int pos) {
        Toast.makeText(getApplicationContext(), "This bullshit file is deleted!",
                Toast.LENGTH_LONG).show();
   
 }

});

এবং নিচের এই মেথড হচ্ছে নেগেটিভ বাটনের জন্য।

builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
  
  @Override
    public void onClick(DialogInterface dialog, int pos) {
        Toast.makeText(getApplicationContext(), "Dialogue Cancelled!",
                Toast.LENGTH_LONG).show();
   
 }

});

আর সর্বশেষে ডায়লগ শো করানোর জন্য নিচের দুই লাইন।

        AlertDialog simpleDialog = builder.create();
        simpleDialog.show();

এবার নিচের এক্সএমএল কোডগুলো কপি পেস্ট করুন আপনার  acivity_main.xml ফাইলে।


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context=".MainActivity"
    android:gravity="center"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:text="Android Lime.com"
        android:id="@+id/textView"
        android:layout_marginBottom="40px"
      />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Delete This File"
        android:id="@+id/button"
        android:background="#880e4f"
        android:textColor="#fff"
        android:padding="14px"
        android:layout_marginBottom="50dp"
        android:onClick="DeleteSite"/>
</LinearLayout>

aleart dialog

Android Alert Dialog practice

আর নিচের কোড MainActivity.java ফাইলে পেস্ট করুনঃ


package com.androidlime.dialogs;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
// AndroidLime.com // fb.com/rubel007cse
    public void DeleteSite(View v) {
        AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
        builder.setTitle("Deleting File..");
                builder.setMessage("Are your sure?");
        builder.setIcon(R.drawable.mylogo);
        builder.setCancelable(false);

        builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int pos) {
                Toast.makeText(getApplicationContext(), "This bullshit file is deleted!",
                        Toast.LENGTH_LONG).show();
            }
        });
        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int pos) {
                Toast.makeText(getApplicationContext(), "Dialogue Cancelled!",
                        Toast.LENGTH_LONG).show();
            }
        });

        AlertDialog simpleDialog = builder.create();
        simpleDialog.show();
    }

}

এখন প্রজেক্ট রান করলে নিচের মত আউটপুট পাওয়া যাবে।

 

অ্যান্ড্রয়েড এর ডায়লগ বক্স।

অ্যান্ড্রয়েড এর ডায়লগ বক্স

ফুল প্রজেক্ট ডাউনলোড করে নিন এখান থেকে।

নেক্সস্ট লেখায় আমরা চেষ্টা করবো কাস্টম ডায়লগ নিয়ে আলোচনা করতে। পড়ার জন্য ধন্যবাদ। উপকারী মনে হলে শেয়ার করুন।

 

আরো পড়ুনঃ অ্যান্ড্রয়েড এ্যাপ্লিকেশন মনেটাইজেশান (রেভেনিউ জেনেরেট) এর পথ সমূহ

Mosharrof Rubel

আমাকে ফেসবুকে পাবেন এখানেঃ মোশাররফ রুবেল

You may also like...

Leave a Reply