মাঝে মাঝে আমাদের ইউজারকে কিছু অপশন দিতে হয়। কোন বাটনে ক্লিক করলে কিছু অপশন দেখাবে। ইউজার ঐ অপশন থেকে যে কোন অপশন সিলেক্ট করতে হবে। এই অপশন গুলো দেখানোর জন্য আমরা লিস্ট ডায়াগল ব্যবহার করতে পারি।
আমরা সিম্পল একটা বাটন তৈরি করি। ঐ বাটনে ক্লিক করলে লিস্ট ডায়ালগটা দেখাবে। activity_main.xml:
<?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"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="me.jakir.actiondialog.MainActivity">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Show Acition Dialog"
android:id="@+id/button"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="125dp" />
</RelativeLayout>
ডায়ালগ অপশনে কি কি অপশন দেখাবো, তার জন্য একটা লিস্ট তৈরি করে নি CharSequence ব্যবহার করে। আমাদের প্ল্যান হচ্ছে ব্যবহারকারী কে কয়েকটা কালার পছন্দ করতে দেওয়া। এরপর ব্যবহারকারী যে কালার পছন্দ করেছে, তা একটা টোস্টে দেখানো।
এরপরের কাজ হচ্ছে ডায়ালগ তৈরি করা এবং তা শো করা। তার জন্যঃ
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// the user clicked on colors[which]
Log.i("Click",String.valueOf(which));
}
}
});
builder.show();
আমরা চাইলে কোন অপশনে ক্লিক করেছে, ঐ অনুযায়ী কোন কাজ সম্পর্ন করতে পারি। তার জন্যঃ
if (which == 0){
Toast.makeText(getApplicationContext(), "You clicked Red", Toast.LENGTH_LONG).show();
} else if (which == 1){
Toast.makeText(getApplicationContext(), "You clicked Green", Toast.LENGTH_LONG).show();
} else if (which == 2){
Toast.makeText(getApplicationContext(), "You clicked Blue", Toast.LENGTH_LONG).show();
}else if (which == 3){
Toast.makeText(getApplicationContext(), "You clicked Black", Toast.LENGTH_LONG).show();
}
সম্পুর্ণ MainActivity.java:
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
showActionDialog();
}
});
}
private void showActionDialog() {
CharSequence colors[] = new CharSequence[] {"red", "green", "blue", "black"};
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("Pick a color");
builder.setItems(colors, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// the user clicked on colors[which]
Log.i("Click",String.valueOf(which));
if (which == 0){
Toast.makeText(getApplicationContext(), "You clicked Red", Toast.LENGTH_LONG).show();
} else if (which == 1){
Toast.makeText(getApplicationContext(), "You clicked Green", Toast.LENGTH_LONG).show();
} else if (which == 2){
Toast.makeText(getApplicationContext(), "You clicked Blue", Toast.LENGTH_LONG).show();
}else if (which == 3){
Toast.makeText(getApplicationContext(), "You clicked Black", Toast.LENGTH_LONG).show();
}
}
});
builder.show();
}
}