How to create MultiChoice AlertDialog in Android

activity_main.xml
 <RelativeLayout     xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:id="@+id/rl"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:padding="10dp"     tools:context=".MainActivity"     android:background="#b0ca48"     >     <Button         android:id="@+id/btn"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="Colors you most like?"         />     <TextView         android:id="@+id/tv"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_below="@id/btn"         android:textSize="20dp"         /> </RelativeLayout> 
MainActivity.java
 package com.cfsuman.me.androidcodesnippets;  import android.app.AlertDialog; import android.content.DialogInterface; import android.graphics.Color; import android.os.Bundle; import android.app.Activity; import android.view.View; import android.widget.Button; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast;  import java.util.Arrays; import java.util.List;   public class MainActivity extends Activity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          // Get reference of widgets from XML layout         selesai RelativeLayout rl = (RelativeLayout) findViewById(R.id.rl);         Button btn = (Button) findViewById(R.id.btn);         selesai TextView tv = (TextView) findViewById(R.id.tv);          btn.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 // Build an AlertDialog                 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);                  // String array for alert dialog multi choice items                 String[] colors = new String[]{                         "Red",                         "Green",                         "Blue",                         "Purple",                         "Olive"                 };                  // Boolean array for initial selected items                 selesai boolean[] checkedColors = new boolean[]{                         false, // Red                         true, // Green                         false, // Blue                         true, // Purple                         false // Olive                  };                  // Convert the color array to list                 selesai List<String> colorsList = Arrays.asList(colors);                  // Set multiple choice items for alert dialog                 /*                     AlertDialog.Builder setMultiChoiceItems(CharSequence[] items, boolean[]                     checkedItems, DialogInterface.OnMultiChoiceClickListener listener)                         Set a list of items to be displayed in the dialog as the content,                         you will be notified of the selected item via the supplied listener.                  */                 /*                     DialogInterface.OnMultiChoiceClickListener                     public abstract void onClick (DialogInterface dialog, int which, boolean isChecked)                          This method will be invoked when an item in the dialog is clicked.                          Parameters                         dialog The dialog where the selection was made.                         which The position of the item in the list that was clicked.                         isChecked True if the click checked the item, else false.                  */                 builder.setMultiChoiceItems(colors, checkedColors, new DialogInterface.OnMultiChoiceClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which, boolean isChecked) {                          // Update the current focused item's checked status                         checkedColors[which] = isChecked;                          // Get the current focused item                         String currentItem = colorsList.get(which);                          // Notify the current action                         Toast.makeText(getApplicationContext(),                                 currentItem + " " + isChecked, Toast.LENGTH_SHORT).show();                     }                 });                  // Specify the dialog is not cancelable                 builder.setCancelable(false);                  // Set a title for alert dialog                 builder.setTitle("Your preferred colors?");                  // Set the positive/yes button click listener                 builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         // Do something when click positive button                         tv.setText("Your preferred colors..... \n");                         for (int i = 0; i<checkedColors.length; i++){                             boolean checked = checkedColors[i];                             if (checked) {                                 tv.setText(tv.getText() + colorsList.get(i) + "\n");                             }                         }                     }                 });                  // Set the negative/no button click listener                 builder.setNegativeButton("No", new DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         // Do something when click the negative button                     }                 });                  // Set the neutral/cancel button click listener                 builder.setNeutralButton("Cancel", new DialogInterface.OnClickListener() {                     @Override                     public void onClick(DialogInterface dialog, int which) {                         // Do something when click the neutral button                     }                 });                  AlertDialog dialog = builder.create();                 // Display the alert dialog on interface                 dialog.show();             }         });     } } 





More android examples

Komentar