Saturday, December 8, 2018

Android Date & Time Picker (Part-12)


                                         

                     Android DatePicker

 -------------------------------------------------------------

 আজকে আমরা , ডেটপিকার নিয়ে আলোচনা করবো , আর দেখবো ,এটা কিভাবে ব্যবহার করতে হয় ?? 


এটা এক ধরনের widget যার সাহায্যে , আমরা মাস দিন বছরের হিসেবে একটা ডেট পিক করতে পারি , তো যাই হোক , কথা না বারিয়ে আমরা একটা এপ্লিকেশন বানিয়ে ফেলি , যেখানে আমরা যে ডেট সিলেক্ট করবো , সেটা শো করবে !! চলো ------------

File: activity_main.xml


  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.    >  
  8.   
  9.     <TextView  
  10.         android:id="@+id/textView1"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_height="wrap_content"  
  13.         android:layout_above="@+id/button1"  
  14.         android:layout_alignParentLeft="true"  
  15.         android:layout_alignParentStart="true"  
  16.         android:layout_marginBottom="102dp"  
  17.         android:layout_marginLeft="30dp"  
  18.         android:layout_marginStart="30dp"  
  19.         android:text="" />  
  20.   
  21.     <Button  
  22.         android:id="@+id/button1"  
  23.         android:layout_width="wrap_content"  
  24.         android:layout_height="wrap_content"  
  25.         android:layout_alignParentBottom="true"  
  26.         android:layout_centerHorizontal="true"  
  27.         android:layout_marginBottom="20dp"  
  28.         android:text="Change Date" />  
  29.   
  30.     <DatePicker  
  31.         android:id="@+id/datePicker"  
  32.         android:layout_width="wrap_content"  
  33.         android:layout_height="wrap_content"  
  34.         android:layout_above="@+id/textView1"  
  35.         android:layout_centerHorizontal="true"  
  36.         android:layout_marginBottom="36dp" />  
  37.   
  38. </RelativeLayout>  

 এখন জাভা ফাইল দেখে ফেলি ----------------

  1. import android.support.v7.app.AppCompatActivity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.widget.Button;  
  5. import android.widget.DatePicker;  
  6. import android.widget.TextView;  
  7.   
  8. public class MainActivity extends AppCompatActivity {  
  9.     DatePicker picker;  
  10.     Button displayDate;  
  11.     TextView textview1;  
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.   
  17.         textview1=(TextView)findViewById(R.id.textView1);  
  18.         picker=(DatePicker)findViewById(R.id.datePicker);  
  19.         displayDate=(Button)findViewById(R.id.button1);  
  20.   
  21.         textview1.setText("Current Date: "+getCurrentDate());  
  22.   
  23.         displayDate.setOnClickListener(new View.OnClickListener(){  
  24.             @Override  
  25.             public void onClick(View view) {  
  26.   
  27.                 textview1.setText("Change Date: "+getCurrentDate());  
  28.             }  
  29.   
  30.         });  
  31.   
  32.     }  
  33.     public String getCurrentDate(){  
  34.         StringBuilder builder=new StringBuilder();;  
  35.         builder.append((picker.getMonth() + 1)+"/");//month is 0 based  
  36.         builder.append(picker.getDayOfMonth()+"/");  
  37.         builder.append(picker.getYear());  
  38.         return builder.toString();  
  39.     }  
  40. }
 তাহলে , এখন আমরা বুঝতে পারলাম , আমাদের মাস / বছর / দিন পাওয়ার ফাংশন ইউজ করে সেটা একটা স্ট্রিং এ কনভার্ট করে , টেক্সট ভিউ তে সেট করে দিলাম !! চলো , এবার এপ্লিকেশনের ছবিগুলো দেখে আসি --------

 

 এবার আমরা টাইম পিকার নিয়ে কথা বলবো !!!! 


                         Android Time Picker 

----------------------------------------------------------------------------------

আমরা , এর আগেরটায় যেমন মাস দিন বছর এই তিনট জিনিস সিলেক্ট করতে পেরেছি , এখানে আমরা মাত্র দুইটি জিনিস সিলেক্ট করতে পারবো , সেটা হলো !! ঘন্টা আর মিনিট !! সেকেন্ড আমরা সিলেক্ট করতে পারবো না !!!! তো আমরা একটা ছোট অ্যাপ্লিকেশন বানিয়ে ফেলি -------------

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.    >  
  8.   
  9.     <TextView  
  10.         android:id="@+id/textView1"  
  11.         android:layout_width="wrap_content"  
  12.         android:layout_height="wrap_content"  
  13.         android:layout_above="@+id/button1"  
  14.         android:layout_alignParentLeft="true"  
  15.         android:layout_alignParentStart="true"  
  16.         android:layout_marginBottom="102dp"  
  17.         android:layout_marginLeft="30dp"  
  18.         android:layout_marginStart="30dp"  
  19.         android:text="" />  
  20.   
  21.     <Button  
  22.         android:id="@+id/button1"  
  23.         android:layout_width="wrap_content"  
  24.         android:layout_height="wrap_content"  
  25.         android:layout_alignParentBottom="true"  
  26.         android:layout_centerHorizontal="true"  
  27.         android:layout_marginBottom="20dp"  
  28.         android:text="Change Time" />  
  29.   
  30.     <TimePicker  
  31.         android:id="@+id/timePicker"  
  32.         android:layout_width="wrap_content"  
  33.         android:layout_height="wrap_content"  
  34.         android:layout_above="@+id/textView1"  
  35.         android:layout_centerHorizontal="true"  
  36.         android:layout_marginBottom="36dp" />  
  37. </RelativeLayout>


এবার জাভা ফাইল ক্রিয়েট করি -----------


  1. import android.support.v7.app.AppCompatActivity;  
  2. import android.os.Bundle;  
  3. import android.view.View;  
  4. import android.widget.Button;  
  5. import android.widget.TextView;  
  6. import android.widget.TimePicker;  
  7.   
  8. public class MainActivity extends AppCompatActivity {  
  9.     TextView textview1;  
  10.     TimePicker timepicker;  
  11.     Button changetime;  
  12.     @Override  
  13.     protected void onCreate(Bundle savedInstanceState) {  
  14.         super.onCreate(savedInstanceState);  
  15.         setContentView(R.layout.activity_main);  
  16.   
  17.         textview1=(TextView)findViewById(R.id.textView1);  
  18.         timepicker=(TimePicker)findViewById(R.id.timePicker);  
  19.         //Uncomment the below line of code for 24 hour view  
  20.         timepicker.setIs24HourView(true);  
  21.         changetime=(Button)findViewById(R.id.button1);  
  22.   
  23.         textview1.setText(getCurrentTime());  
  24.   
  25.         changetime.setOnClickListener(new View.OnClickListener(){  
  26.             @Override  
  27.             public void onClick(View view) {  
  28.                 textview1.setText(getCurrentTime());  
  29.             }  
  30.         });  
  31.   
  32.     }  
  33.   
  34.     public String getCurrentTime(){  
  35.         String currentTime="Current Time: "+timepicker.getCurrentHour()+":"+timepicker.getCurrentMinute();  
  36.         return currentTime;  
  37.     }  
  38.   }

Tuesday, December 4, 2018

Android Rating Bar , Android WebView and Android SeekBar (Part -11)

                                                 

                    Android RatingBar

                ----------------------------------

 

আমরা এখন রেটিং বার নিয়ে কথা বলবো , রেটিং বার কিভাবে ব্যবহার করতে হয় ? সেটা দেখবো !! আমরা গুগল প্লে স্টর থেকে কোনো অ্যাপ ডাউনলোড দিলে , আমরা সেখানে সেই অ্যাপের রেটিং কিন্তু দেখতে পাই । ঠিক সেইরকম , রেটিং বার নিয়েই আমরা কাজ করবো। এটা সাধারণত , ইউজার থেকে রেটিং নিতে ব্যবহার করা হয় !! আর এটা , ডাবল নাম্বার রিটার্ন করে যেমন 2.0, 3.5, 4.0 !!
Android RatingBar তার রেটিং , স্টার এর মাধ্যমে ডিস্প্লে তে শো করাবে !! এটা সাধারনত ,
AbsSeekBar class. এর সাবক্লাস !! 

 
getRating()মেথোডের মাধ্যমে ,আমরা rating number রিটার্ন পাই , তো চলো আমরা একটা অ্যাপ্লিকেশন বানিয়ে ফেলি ----------

 আমরা প্রথমে লেয়াউট ফাইল দেখে নেই , 

<?xml version="1.0" encoding="utf-8"?><RelativeLayout    
    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">

    <Button 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:text="submit" 
 android:id="@+id/button"         
android:layout_marginTop="87dp" 
 android:layout_alignTop="@+id/ratingBar"         
android:layout_centerHorizontal="true" />

    <RatingBar 
 android:id="@+id/ratingBar" 
 android:layout_width="wrap_content" 
 android:layout_height="wrap_content" 
 android:layout_marginLeft="72dp"         
android:layout_centerVertical="true" 
 android:layout_centerHorizontal="true" />

</RelativeLayout>
 
 
এবার আমরা জাভা ফাইল দেখে নেই --------------
 
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RatingBar;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    RatingBar ratingbar;
    Button button;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        addListenerOnButtonClick();
    }
    public void addListenerOnButtonClick(){
        ratingbar=(RatingBar)findViewById(R.id.ratingBar);
        button=(Button)findViewById(R.id.button);
        //Performing action on Button Click   
 button.setOnClickListener(new View.OnClickListener(){

            @Override 
 public void onClick(View arg0) {
                //Getting the rating and displaying it on the toast
  String rating=String.valueOf(ratingbar.getRating());
                Toast.makeText(getApplicationContext(), rating, Toast.LENGTH_LONG).show();
            }

        });
    }
}  
 
 এবার রান করালেই , বিষয়টি আরো পরিষ্কার হবে , যে কিভাবে ? এটা কাজ করছে ?? 


                              

                               Android WebView

                     --------------------------------------------

 

 আমরা যদি , আমাদের এক্টিভিটি'তেই কোনো ওয়েব পেইজ এর কনটেন্ট শো করাতে চাই , অর্থাৎ কিছুটা ব্রাউজারের মতো কাজ করাতে চাই , তাহলে মাদের এই WebView ব্যবহার করতে হয় !!  আমরা বিভিন্নভাবে , এটা করাতে পারি --- আমরা যেভাবে মেথোড ইউজ করবো , সেই মেথোড  নিচে দিলাম 

 WebView mywebview = (WebView) findViewById(R.id.webView1); 

 mywebview.loadUrl("http://www.google.com/");

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

 

<?xml version="1.0" encoding="utf-8"?><RelativeLayout 
 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"    >

    <WebView 
 
 android:id="@+id/google"         
android:layout_width="fill_parent" 
 android:layout_height="fill_parent" 
 android:layout_alignParentBottom="true" 
 android:layout_alignParentEnd="true" 
 android:layout_alignParentLeft="true" 
 android:layout_alignParentRight="true" 
 android:layout_alignParentStart="true"         
android:layout_alignParentTop="true" />

</RelativeLayout>
 
এবার , আমরা জাভা ফাইল দেখবো 
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class MainActivity extends AppCompatActivity {
    private WebView mywebview;
    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        WebView mywebview = (WebView) findViewById(R.id.google);
        mywebview.setWebViewClient(new WebViewClient());
        mywebview.getSettings().setJavaScriptEnabled(true);
        mywebview.getSettings().setDomStorageEnabled(true);
        mywebview.setOverScrollMode(WebView.OVER_SCROLL_NEVER);
        mywebview.loadUrl("https://www.google.com");
    }
   
} 

এখনি , সবকিছু শেষ হয় নি , আমরা একটু নরমাল চিন্তা করলেই বুঝতে পারি যে এই ওয়েবভিউ ঠিক্টহাক তখনই চলবে , যখন আমাদের নেট এর প্রয়োজন হবে 
তাহলে আমাদের manifest ফাইল এ এই ইন্টারনেট ইউজ করার বেপারটা ইঙ্কলুড করতে হবে !!!! 
 
তাহলে , ঠিক  application অ্যাট্রিবিউট এর আগেই ম্যানিফেস্ট ফাইলে নীচের স্টেইটমেন্ট যোগ করে দেই 
 
<uses-permission android:name="android.permission.INTERNET"/>
 
ব্যাস এবার আমাদের , কাজ শেষ , এটা রান করালেই , তোমরা গুগলের সার্চ ইঞ্জিন পেয়ে যাবা , তারপর সেখানে সার্চ দিয়ে ইচ্ছেমত ব্রাউজারের মতো ব্যবহার করতে পারবা , আজ এইটুকুই !!  

 

                    Android SeekBar

----------------------------------------------------------------------------------------------------------------------------



 এটা এক ধরনের প্রোগ্রেসবার ,যেমন গান শোনার সময় , আমরা হাত দিয়েই , অনেক সময় গান কেটে দেই , বা মাঝ থেকে শুনি বা প্রথম থেকে শুনি , মানে ইচ্ছেমতো drag করতে পারি !! SeekBar আর RatingBar দুইটাই ,AbsSeekBar  এর সাবক্লাস !! তো চলো , একটা অ্যাপ্লিকেশন বানিয়ে দেখি , কিভাবে seekbar হ্যান্ডেল করতে হয় ?

 

activity_main.xml

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     xmlns:app="http://schemas.android.com/apk/res-auto"  
  4.     xmlns:tools="http://schemas.android.com/tools"  
  5.     android:layout_width="match_parent"  
  6.     android:layout_height="match_parent"  
  7.     tools:context="example.javatpoint.com.seekbar.MainActivity">  
  8.   
  9.   
  10.     <SeekBar  
  11.         android:id="@+id/seekBar"  
  12.         android:layout_width="match_parent"  
  13.         android:layout_height="wrap_content"  
  14.         android:layout_marginEnd="8dp"  
  15.         android:layout_marginStart="8dp"  
  16.         android:layout_marginTop="372dp"  
  17.          />  
  18. </android.support.constraint.ConstraintLayout> 

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

File: MainActivity.java
  1. package example.javatpoint.com.seekbar;  
  2.   
  3. import android.support.v7.app.AppCompatActivity;  
  4. import android.os.Bundle;  
  5. import android.widget.SeekBar;  
  6. import android.widget.Toast;  
  7.   
  8. public class MainActivity extends AppCompatActivity {  
  9.     SeekBar seekBar;  
  10.     @Override  
  11.     protected void onCreate(Bundle savedInstanceState) {  
  12.         super.onCreate(savedInstanceState);  
  13.         setContentView(R.layout.activity_main);  
  14.   
  15.         seekBar=(SeekBar)findViewById(R.id.seekBar);  
  16.         seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {  
  17.             @Override  
  18.             public void onProgressChanged(SeekBar seekBar, int progress,  
  19.                                           boolean fromUser) {  
  20.                 Toast.makeText(getApplicationContext(),"seekbar progress: "+progress, Toast.LENGTH_SHORT).show();  
  21.             }  
  22.   
  23.             @Override  
  24.             public void onStartTrackingTouch(SeekBar seekBar) {  
  25.                 Toast.makeText(getApplicationContext(),"seekbar touch started!", Toast.LENGTH_SHORT).show();  
  26.             }  
  27.   
  28.             @Override  
  29.             public void onStopTrackingTouch(SeekBar seekBar) {  
  30.                 Toast.makeText(getApplicationContext(),"seekbar touch stopped!", Toast.LENGTH_SHORT).show();  
  31.             }  
  32.         });  
  33.     }  

  চলো , পিক দেখে পরীষ্কার হয়ে নেই --------


Monday, December 3, 2018

Android Spinner & Android AutoCompleteView (Part-10)

                              Android Spinner Example
                  --------------------------------------------------






Android Spinner হলো , এক ধরনের  combox বাক্সের মতো !! এটা , অনেকগুলো ভ্যালু'র সমন্বয়ে  drop down menu এর মতো , যেখান থেকে অনেকগুলো'র ভেতরে যেকোনো একটা ইউজারকে সিলেক্ট করতে হয় !!  Android Spinner class হলো , AsbSpinner class এর সাবক্লাস !! আমরা এখন একটা অ্যাপ্লিকেশন বানিয়ে ফেলি , যেটা বিভিন্ন দেশের একটা লিস্ট শো করাবে আর যেখান থেকে , আমরা যেকোনো একটা সিলেক্ট করবো !! এইজন্য , আমরা  ArrayAdapter ক্লাস ব্যবহার করে - দেশের নামগুলো স্টোর করে রাখবো !!

চলো আমরা , এবার দেখে নেই ---------

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.spinner.MainActivity"> 
     
        <Spinner 
            android:id="@+id/spinner" 
            android:layout_width="149dp" 
            android:layout_height="40dp" 
            android:layout_marginBottom="8dp" 
            android:layout_marginEnd="8dp" 
            android:layout_marginStart="8dp" 
            android:layout_marginTop="8dp" 
             /> 
     
    </android.support.constraint.ConstraintLayout> 

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

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity implements
        AdapterView.OnItemSelectedListener {
    String[] country = { "India", "USA", "China", "Japan", "Other"};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //Getting the instance of Spinner and applying OnItemSelectedListener on it
        Spinner spin = (Spinner) findViewById(R.id.spinner);
        spin.setOnItemSelectedListener(this);

        //Creating the ArrayAdapter instance having the country list
        ArrayAdapter aa = new ArrayAdapter(this,android.R.layout.simple_spinner_item,country);
        aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        //Setting the ArrayAdapter data on the Spinner
        spin.setAdapter(aa);

    }

    //Performing action onItemSelected and onNothing selected
    @Override
    public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id) {
        Toast.makeText(getApplicationContext(),country[position] , Toast.LENGTH_LONG).show();
    }
    @Override
    public void onNothingSelected(AdapterView<?> arg0) {
        // TODO Auto-generated method stub
    }
}

আশা করি , এটা রান করালেই , অনেক কিছুই আমাদের কাছে পরিষ্কার হয়ে যাবে !! আমরা যেটা সিলেক্ট করবো , সেটা টোস্ট আকারে , শো হবে , তাও সহজেই আমরা বুঝতে পারবো , কোনটা সিলেক্ট করবো, আমরা ?? আজ এইটুকুই !! 




                        Android AutoCompleteTextView Example
                  -----------------------------------------------
                         

 
আমরা যখন গুগলে, কোনো কিছু সার্চ করি , তখন ওটোমেটিক অনেক কিছু সাজেশন চলে আসে , অনুরুপভাবে আমরা যদি এরকম অটোমেটিক সাজেশন সিস্টেম করতে চাই , তাহলে  AutoCompleteTextView ব্যবহার করে করতে হবে !! এটা মূলত এক ধরনের  editable text field যেখানে কিছু লিখতে গেলে , drop down menu আকারে কিছু ওটোমেটিক  সাজেশন চলে আসবে !! যেখান থেকে , আমরা শুধু একটা সাজেশন সিলেক্ট করতে পারবো !! চলো , তাহলে একটা অ্যাপ্লিকেশন বানিয়ে ফেলি --------

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.autocompletetextview.MainActivity"> 
     
        <TextView 
            android:layout_width="wrap_content" 
            android:layout_height="wrap_content" 
            android:text="What is your favourite programming language?" 
            app:layout_constraintBottom_toBottomOf="parent" 
            app:layout_constraintLeft_toLeftOf="parent" 
            app:layout_constraintRight_toRightOf="parent" 
            app:layout_constraintTop_toTopOf="parent" 
            app:layout_constraintVertical_bias="0.032" /> 
     
        <AutoCompleteTextView 
            android:id="@+id/autoCompleteTextView" 
            android:layout_width="200dp" 
            android:layout_height="wrap_content" 
            android:layout_marginLeft="92dp" 
            android:layout_marginTop="144dp" 
            android:text="" 
            app:layout_constraintStart_toStartOf="parent" 
            app:layout_constraintTop_toTopOf="parent" /> 
     
    </android.support.constraint.ConstraintLayout> 

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

File: MainActivity.java

    package example.javatpoint.com.autocompletetextview; 
     
    import android.graphics.Color; 
    import android.support.v7.app.AppCompatActivity; 
    import android.os.Bundle; 
    import android.widget.ArrayAdapter; 
    import android.widget.AutoCompleteTextView; 
     
    public class MainActivity extends AppCompatActivity { 
        String[] language ={"C","C++","Java",".NET","iPhone","Android","ASP.NET","PHP"}; 
        @Override 
        protected void onCreate(Bundle savedInstanceState) { 
            super.onCreate(savedInstanceState); 
            setContentView(R.layout.activity_main); 
            //Creating the instance of ArrayAdapter containing list of language names 
            ArrayAdapter<String> adapter = new ArrayAdapter<String> 
                    (this,android.R.layout.select_dialog_item,language); 
            //Getting the instance of AutoCompleteTextView 
            AutoCompleteTextView actv =  (AutoCompleteTextView)findViewById(R.id.autoCompleteTextView); 
            actv.setThreshold(1);//will start working from first character 
            actv.setAdapter(adapter);//setting the adapter data into the AutoCompleteTextView 
            actv.setTextColor(Color.RED); 
        } 
    } 

তাহলে এখন আমরা রান করলে, বিষয়টি আমাদের কাছে পরিষ্কার হয়ে যাবে , আমরা এক্ষেত্রেও  ArrayAdapter ইউজ করেছি !! ArrayAdapter বার বার ব্যবহারের কারণে বিষয়টি আমাদের কাছে আরো পরিষ্কার হয়ে উঠবে !! আজ এইটুকুই !!














































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();
                }
            });
        }
    }
}

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