Sunday, December 2, 2018

Android Button , Android Toast and Android Custom Toast ( Part -7)

                             Android Button
                       -----------------------------

Android Button দ্বারা আসলে এক ধরনের পুশ বাটন কে বোঝায় , যাকে চাপ দিলে কাজ করবে ,   android.widget.Button হলো TextView class এর   subclass , আর CompoundButton হলো   Button class এর subclass । । যাই হোক , এখানে আমরা কম্পাউন্ড বাটন ইউজ করছি না ।

android এ আমাদের বিভিন্ন ধরনের বাটন রয়েছে , যেমন  RadioButton, ToggleButton, CompoundButton সহ আরো অনেক .

আমরা বাটন বোঝানোর জন্য , দুইটা  textfields (যেটা ইউজার থেকে ইনপুট নিতে পারে )  আর একটা বাটন ব্যবহার করবো । যখন, আমরা বাটন চাপ দেবো , তখন টেক্সটফিল্ড -এ দেয়া দুইটা ইনপুট ভ্যালু'র যোগফল স্ক্রিনে Toast মেসেজ আকারে কিছুক্ষন শো করাবে !!

এখন আমাদের বাটন কে বুঝাতে হবে যে  , আমরা বাটন কে পুশ করেছি -সেটা কিভাবে বুঝাবো ? সেই ক্ষেত্রে আমরা ণিচের এই মেথোডটা ইউজ করতে পারি ---

এখন আমরা , Text Fields palette থেকে দুইটা  edit Text বসাবো , আর  Widgets palette থেকে একটা  button বসাবো ।

আমরা , একটা layout file আর একটা java file  দেখে নেই ,চলো ---

File: activity_main.xml

    <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 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.sumoftwonumber.MainActivity"> 
     
        <EditText 
            android:id="@+id/editText1" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_alignParentTop="true" 
            android:layout_centerHorizontal="true" 
            android:layout_marginTop="61dp" 
            android:ems="10" 
            android:inputType="number" 
            tools:layout_editor_absoluteX="84dp" 
            tools:layout_editor_absoluteY="53dp" /> 
     
        <EditText 
            android:id="@+id/editText2" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_below="@+id/editText1" 
            android:layout_centerHorizontal="true" 
            android:layout_marginTop="32dp" 
            android:ems="10" 
            android:inputType="number" 
            tools:layout_editor_absoluteX="84dp" 
            tools:layout_editor_absoluteY="127dp" /> 
     
        <Button 
            android:id="@+id/button" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:layout_below="@+id/editText2" 
            android:layout_centerHorizontal="true" 
            android:layout_marginTop="109dp" 
            android:text="ADD" 
            tools:layout_editor_absoluteX="148dp" 
            tools:layout_editor_absoluteY="266dp" /> 
    </RelativeLayout> 


File: MainActivity.java

    package example.javatpoint.com.sumoftwonumber; 
     
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.View; 
    import android.widget.Button; 
    import android.widget.EditText; 
    import android.widget.Toast; 
     
    public class MainActivity extends AppCompatActivity { 
        private EditText edittext1, edittext2; 
        private Button buttonSum; 
     
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
     
            addListenerOnButton(); 
        } 
     
        public void addListenerOnButton() { 
            edittext1 = (EditText) findViewById(R.id.editText1); 
            edittext2 = (EditText) findViewById(R.id.editText2); 
            buttonSum = (Button) findViewById(R.id.button); 
     
            buttonSum.setOnClickListener(new View.OnClickListener() { 
                @Override 
                public void onClick(View view) { 
                    String value1=edittext1.getText().toString(); 
                    String value2=edittext2.getText().toString(); 
                    int a=Integer.parseInt(value1); 
                    int b=Integer.parseInt(value2); 
                    int sum=a+b; 
                    Toast.makeText(getApplicationContext(),String.valueOf(sum), Toast.LENGTH_LONG).show(); 
                } 
            }); 
        } 
    } 

তাহলে , এখন রান করে দেখো , তাহলেই দেখবে আওউটপুট টোস্ট আকারে স্ক্রিনে শো হবে , এরপর আমরা টোস্ট নিয়ে আলোচনা করবো এখন !! 




                           Android Toast Example
                       ---------------------------





Andorid Toast হলো এক ধরনের টেক্সট যা কোনো এক্টিভিটি'র স্ক্রিনে কিছুক্ষনের জন্য শো হয় , তারপর আবার উধাও হয়ে যায় ।

টোস্ট এর জন্য বাবহৃত  android.widget.Toast class হলো ,  java.lang.Object class এরই  subclass ।


Toast class এ , দুই ধরনের  constant রয়েছে ,

              Constant                                Description
public static final int LENGTH_LONG         কিছুটা বেশী সময়ের জন্য টোস্ট মেসেজ শো করায় ।
public static final int LENGTH_SHORT       কিছুটা কম সময়ের জন্য টস্ট মেসেজ শো করায় । .


টোস্ট ক্লাসের কিছু মেথোড রয়েছে , যেসব সবচেয়ে বেশী ইউজ করা হয় -----


public static Toast makeText(Context context, CharSequence text, int duration)    এই মেথোডের মাধ্যমে , আমরা টোস্ট এর গঠন বানাই এবং কতক্ষন থাকবে? সেই ডিউরেশন বানাই ।

public void show()    এই মেথোডের মাধ্যমে টস্ট মেসেজ শো করানো হয় ।

public void setMargin (float horizontalMargin, float verticalMargin)  এই মেথোডের মাধ্যমে  horizontal and vertical margin এর মাঝে পারথ্যক্য পরিবর্তন করা হয় । এর মাধ্যমে , আমরা টস্ট মেসেজ স্ক্রিনের কোথায় শো করবে ? সেটা ঠিক করতে পারী !!

আমরা এখন  syntax দেখে নেই !!

    Toast.makeText(getApplicationContext(),"Hello Javatpoint",Toast.LENGTH_SHORT).show(); 

Another code:

    Toast toast=Toast.makeText(getApplicationContext(),"Hello Javatpoint",Toast.LENGTH_SHORT); 
    toast.setMargin(50,50); 
    toast.show(); 

getApplicationContext() মেথোড এর মাধ্যমে , আমরা  Context এর ইন্সট্যান্স রিটার্ন করি ।
চলো , আমরা এর জাভা ফাইলের কোড দেখে ফেলি , আর লা আউট ফাইলে কোনো চেইঞ্জ করতে হবে না , ডিফল্ট ভাবে যা আছে , তা থাকলেই চলবে ।

   File: MainActivity.java

    package example.javatpoint.com.toast; 
     
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.widget.Toast; 
     
    public class MainActivity extends AppCompatActivity { 
     
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
     
            //Displaying Toast with Hello Javatpoint message 
            Toast.makeText(getApplicationContext(),"Hello Javatpoint",Toast.LENGTH_SHORT).show(); 
        } 
    } 
       
এখন রান করে , দেখো কিভাবে এটা কাজ করে ? দেখবে সসবকিছু আরো পরিষ্কার হয়ে যাবে ।।


                            Android Custom Toast Example
                      ----------------------------------------


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

আমরা আগেই একটা লেয়াউট ফাইল সাজিয়ে নেই !!

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.customtoast.MainActivity"> 
     
        <TextView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="Hello World!" 
            app:layout_constraintBottom_toBottomOf="parent" 
            app:layout_constraintLeft_toLeftOf="parent" 
            app:layout_constraintRight_toRightOf="parent" 
            app:layout_constraintTop_toTopOf="parent" /> 
     
    </android.support.constraint.ConstraintLayout> 

আচ্ছা , এখন আমি যে ছবিটা শো করাতে চাই , সেই ছবিটা আমার পিসি'র যেকোনো ফোল্ডার থেকে কপি করে এনে , আমাদের প্রোজেক্ট এর  drawable নামক ফোল্ডারে পেস্ট করবো , ধরে নিলাম আমাদের ইমেজ এর নাম run । তারপর আমরা , কাস্টম টস্ট শো করানোর জন্য ,তাহলে layout directory এর আন্ডারে আরেকটা  xml file বানাই । এখন আমাদের কাস্টোম লেয়াউট এভাবে সাজাতে পারি !!

File: customtoast.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:id="@+id/custom_toast_layout" 
        android:orientation="vertical" 
        android:background="#F14E23" 
        > 
     
        <ImageView 
            android:id="@+id/custom_toast_image" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:contentDescription="Hello world" 
            android:src="@drawable/run"/> 
     
        <TextView 
            android:id="@+id/custom_toast_message" 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:contentDescription="To" 
            android:text="JavaTpoint custom Toast" /> 
    </LinearLayout> 

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

File: MainActivity.java

    package example.javatpoint.com.customtoast; 
     
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.view.Gravity; 
    import android.view.LayoutInflater; 
    import android.view.View; 
    import android.view.ViewGroup; 
    import android.widget.Toast; 
     
    public class MainActivity extends AppCompatActivity { 
     
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
     
            //Creating the LayoutInflater instance 
            LayoutInflater li = getLayoutInflater(); 
            //Getting the View object as defined in the customtoast.xml file 
            View layout = li.inflate(R.layout.customtoast,(ViewGroup) findViewById(R.id.custom_toast_layout)); 
     
            //Creating the Toast object 
            Toast toast = new Toast(getApplicationContext()); 
            toast.setDuration(Toast.LENGTH_SHORT); 
            toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); 
            toast.setView(layout);//setting the view of custom toast layout 
            toast.show(); 
        } 
    } 


যাইহোক , এখন রান করালেই আরো ক্লিয়ার হয়ে যাবে , বিষয়টি তোমাদের কাছে !! যাই হোক , এভাবে যেকোনো আলাদা লেয়াউট বানিয়ে সেটাকে তোমরা টস্ট আকারে দেখাতে পারবে !! এগুলো বার বার ট্রাই করলে, আরো সহজ হয়ে যাবে , তোমাদের কাছে ।

No comments:

Post a Comment