Monday, December 3, 2018

Android Alert Dialog , Android Radio Button & Android Dynamic Radio Button ( Part -9)

                                                                     Android AlertDialog Example
                                                           -------------------------------------------------------



আমরা এখন  AlertDialog  নিয়ে আলোচনা করবো !! এটা সাধারণত , এক ধরনের ডায়ালোগ মেসেজ শো করাতে ব্যবহার করা হয় , যেখানে  OK আর  Cancel বাটন থাকে ।

একটা  AlertDialog এর তিন ধরনের রিজিয়ন থাকে , যেখানে  title( টাইটেল) , content area( ডায়ালগ বক্সে কি লিখা থাকবে ?) and action buttons( OK আর  Cancel বাটন ) !! 
Android AlertDialog হলো , Dialog class এরই সাবক্লাস !!

AlertDialog class এর যেসব মেথোড , বহুল ব্যবহার হয় !!!

public AlertDialog.Builder setTitle(CharSequence)       AlertDialog এর  title সেট করে , এই মেথোড !!
public AlertDialog.Builder setMessage(CharSequence)    AlertDialog এর  কনটেন্ট এরিয়াতে কি মেসেজ থাকবে ? সেটা সেট করে , এই মেথোড !!
public AlertDialog.Builder setIcon(int)                    AlertDialog এর  icon  সেট করতে ব্যবহার হয় !!

এবার আমরা , এটা নিয়ে একটা অ্যাপ্লিকেশন বানিয়ে ফেলি , চলো ----------

activity_main.xml

File: activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <android.support.constraint.ConstraintLayout 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" 
        tools:context="example.javatpoint.com.alertdialog.MainActivity"> 
     
        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/button" 
            android:text="Close app" 
            app:layout_constraintBottom_toBottomOf="parent" 
            app:layout_constraintLeft_toLeftOf="parent" 
            app:layout_constraintRight_toRightOf="parent" 
            app:layout_constraintTop_toTopOf="parent" /> 
     
    </android.support.constraint.ConstraintLayout> 

এবার আমরা সঠিক পদ্ধতিতে , strings.xml ফাইলে আমাদের টাইটেল আর মেসেজ স্ট্রিং আকারে স্টোর করবো !!

File: strings.xml

    <resources> 
        <string name="app_name">AlertDialog</string> 
        <string name="dialog_message">Welcome to Alert Dialog</string> 
        <string name="dialog_title">Javatpoint Alert Dialog</string> 
    </resources> 

এবার আমরা  আমাদের , জাভা ফাইল দেখে নেই

File: MainActivity.java

    package example.javatpoint.com.alertdialog; 
     
    import android.content.DialogInterface; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.app.AlertDialog; 
    import android.widget.Toast; 
     
    public class MainActivity extends AppCompatActivity { 
        Button closeButton; 
        AlertDialog.Builder builder; 
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
     
            closeButton = (Button) findViewById(R.id.button); 
            builder = new AlertDialog.Builder(this); 
            closeButton.setOnClickListener(new View.OnClickListener() { 
                @Override 
                public void onClick(View v) { 
     
                    //Uncomment the below code to Set the message and title from the strings.xml file 
                    //builder.setMessage(R.string.dialog_message) .setTitle(R.string.dialog_title);  ( আমরা এভাবে , স্ট্রিং ফাইল থেকে আমাদের মেসেজ আর টাইটেল সেট করতে পারি )
     
                    //Setting message manually and performing action on button click  ( এখানে আমরা ম্যানুয়ালি , ক্লাস ফাইলের মাধ্যমেই   মেসেজ আর টাইটেল সেট করলাম )
                    builder.setMessage("Do you want to close this application ?") 
                            .setCancelable(false) 
                            .setPositiveButton("Yes", new DialogInterface.OnClickListener() { 
                                public void onClick(DialogInterface dialog, int id) { 
                                    finish(); 
                                    Toast.makeText(getApplicationContext(),"you choose yes action for alertbox", 
                                    Toast.LENGTH_SHORT).show(); 
                                } 
                            }) 
                            .setNegativeButton("No", new DialogInterface.OnClickListener() { 
                                public void onClick(DialogInterface dialog, int id) { 
                                    //  Action for 'NO' Button 
                                    dialog.cancel(); 
                                    Toast.makeText(getApplicationContext(),"you choose no action for alertbox", 
                                    Toast.LENGTH_SHORT).show(); 
                                } 
                            }); 
                    //Creating dialog box 
                    AlertDialog alert = builder.create(); 
                    //Setting the title manually 
                    alert.setTitle("AlertDialogExample"); 
                    alert.show(); 
                } 
            }); 
        } 
    } 


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





                                                          Android RadioButton
                                               ----------------------------------------


RadioButton হলো , কিছুটা  আমাদের এর আগের করা চেকবক্সের মতোনই , বাট কিছুটা পরিবর্তন আছে , এখানে !! চেকবক্স যেমন, একবার চেকড আবার আনচেকড করা যায় !! কিন্তু , রেডিও বাটন কিন্তু একবার চেকড করে ফেললে , আর আনচেকড করতে পারবা না !! রেডিও বাটনের আরেকটা গুরুত্বপূর্ণ দিক আছে যেমন, তোমায় আমি চেকবক্সের সময় অনেকগুলো অপশন দিয়ে বলেছিলাম যেটা খুশী সিলেক্ট করী , কিন্তু আমি যদি বলতে চাই আমি তোমায় শুধু একটা সিলেক্ট করার অধিকার দিবো , একটার বেশী তুমি সিলেক্ট করেত পারবা না , আথলে আমি তখন এই কয়েকটা রেডিও বাটন একটা রেডিও গ্রুপে রেখে ব্যবহার করলেই , তুমি তখন ঠিক এরকম সুবিধে পাবে , শুধুমাত্র যেকোনো একটা ইলিমেন্ট আমরা সিলেক্ট করতে পারবো !!!  তো যাই হোক , এবার আমরা শুরু করি !!


আমরা এখানে , একটা অ্যাপ্লিকেশন বানাবো ,যেটাতে আমরা নরমাল রেদীও বাটন ইউজ করবো , আবার রেডিও গ্রুপ ইউজ করে রেডিও বাটন ইউজ করবো , চলো দেখে নেই

activity_main.xml

File: activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <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" 
        android:orientation="vertical" 
        tools:context="example.javatpoint.com.radiobutton.MainActivity"> 
     
        <TextView 
            android:id="@+id/textView1" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_marginTop="30dp" 
            android:gravity="center_horizontal" 
            android:textSize="22dp" 
            android:text="Single Radio Buttons" /> 
     
     
     
        <!--   Default RadioButtons  --> 
     
        <RadioButton 
            android:id="@+id/radioButton1" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_gravity="center_horizontal" 
            android:text="Radio Button 1" 
            android:layout_marginTop="20dp" 
     
            android:textSize="20dp" /> 
        <RadioButton 
            android:id="@+id/radioButton2" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:text="Radio Button 2" 
            android:layout_marginTop="10dp" 
     
            android:textSize="20dp" /> 
     
     
        <View 
            android:layout_width="fill_parent" 
            android:layout_height="1dp" 
            android:layout_marginTop="20dp" 
            android:background="#B8B894" /> 
     
        <TextView 
            android:id="@+id/textView2" 
            android:layout_width="fill_parent" 
            android:layout_height="wrap_content" 
            android:layout_marginTop="30dp" 
            android:gravity="center_horizontal" 
            android:textSize="22dp" 
            android:text="Radio button inside RadioGroup" /> 
     
     
        <!--   Customized RadioButtons  --> 
     
     
        <RadioGroup 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:id="@+id/radioGroup"> 
     
            <RadioButton 
                android:id="@+id/radioMale" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:text="  Male" 
                android:layout_marginTop="10dp" 
                android:checked="false" 
                android:textSize="20dp" /> 
     
            <RadioButton 
                android:id="@+id/radioFemale" 
                android:layout_width="fill_parent" 
                android:layout_height="wrap_content" 
                android:text="   Female" 
                android:layout_marginTop="20dp" 
                android:checked="false" 
     
                android:textSize="20dp" /> 
        </RadioGroup> 
     
        <Button 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="Show Selected" 
            android:id="@+id/button" 
            android:onClick="onclickbuttonMethod" 
            android:layout_gravity="center_horizontal" /> 
     
     
    </LinearLayout> 

এবার আমাদের জাভা ফাইল দেখতে হবে ,

File: MainActivity.java

    package example.javatpoint.com.radiobutton; 
     
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.RadioButton; 
    import android.widget.RadioGroup; 
    import android.widget.Toast; 
     
    public class MainActivity extends AppCompatActivity { 
        Button button; 
        RadioButton genderradioButton; 
        RadioGroup radioGroup; 
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
            radioGroup=(RadioGroup)findViewById(R.id.radioGroup); 
        } 
        public void onclickbuttonMethod(View v){ 
            int selectedId = radioGroup.getCheckedRadioButtonId(); 
            genderradioButton = (RadioButton) findViewById(selectedId); 
            if(selectedId == -1){ 
                Toast.makeText(MainActivity.this,"Nothing selected", Toast.LENGTH_SHORT).show(); 
            } 
            else{ 
                Toast.makeText(MainActivity.this,genderradioButton.getText(), Toast.LENGTH_SHORT).show(); 
            } 
     
        } 
    } 

তাহলে , একবার রান করে দেখালেই বিষয়টি আরো পরিষ্কার হয়ে যাবে তোমার কাছে !! 




                                      Android Dynamic RadioButton
                              ------------------------------------------

আমরা , টুলস ব্যবহার করে --  রেডিও বাটন  ,  ব্যবহার করি !!  কিন্তু , আমরা কোনো প্রকার লেয়াউট ফাইলে রেডিও বাটন ইঙ্কলুড করা ছাড়া , জাভা ফাইল দিয়েও রেডিও বাটন বানাইতে পারি !! এবং এ ধরনের এক্টিভিটি আমাদের পরে আরো বেশী কাজে লাগবে !! এটাকে  Dynamic RadioButton হিসেবে বলা হয় !!!


Dynamic RadioButton বানানোর জন্য , আমাদের  android.view.ViewGroup.LayoutParams ব্যবহার করতে হবে !!

চলো , আমরা এবার একটা অ্যাপ্লিকেশন বানিয়ে ফেলি  !!


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    android:id="@+id/rootContainer"
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical">

    <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingStart="20dp">

    </RadioGroup>

</LinearLayout>

এবার আমরা  strings.xml ফাইল  সাজিয়ে নেই !!

<resources>
    <string name="app_name">DynamicRadioButton</string>
    <string name="male">Male</string>
    <string name="female">Female</string>
    <string name="you_selected">You selected:</string>
</resources>

এখন বাকি থাকলো , আমাদের জাভা ফাইল -------------------

package com.tutorialwing.dynamicradiobutton;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.ViewGroup;
import android.widget.LinearLayout;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        LinearLayout linearLayout = findViewById(R.id.rootContainer);

        // Create RadioButton Dynamically
        RadioButton radioButton1 = new RadioButton(this);
        radioButton1.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        radioButton1.setText(R.string.male);
        radioButton1.setId(0);

        RadioButton radioButton2 = new RadioButton(this);
        radioButton2.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));
        radioButton2.setText(R.string.female);
        radioButton2.setId(1);

        RadioGroup radioGroup = findViewById(R.id.radioGroup);
        if (radioGroup != null) {
            radioGroup.addView(radioButton1);
            radioGroup.addView(radioButton2);

            radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId) {
                    String text = getString(R.string.you_selected);
                    text += " " + getString((checkedId == 0) ? R.string.male : R.string.female);
                    Toast.makeText(getApplicationContext(), text, Toast.LENGTH_SHORT).show();
                }
            });
        }
    }
}

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
































No comments:

Post a Comment