import
androidx.appcompat.app.AlertDialog;
import
androidx.appcompat.app.AppCompatActivity;
import
android.os.Bundle;
import
android.widget.Button;
import
android.widget.TextView;
import
java.util.Arrays;
import
java.util.List;
public
class
MainActivity
extends
AppCompatActivity {
@Override
protected
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button bOpenAlertDialog = findViewById(R.id.openAlertDialogButton);
final
TextView tvSelectedItemsPreview = findViewById(R.id.selectedItemPreview);
final
String[] listItems =
new
String[]{
"C"
,
"C++"
,
"JAVA"
,
"PYTHON"
};
final
boolean
[] checkedItems =
new
boolean
[listItems.length];
final
List<String> selectedItems = Arrays.asList(listItems);
bOpenAlertDialog.setOnClickListener(v -> {
tvSelectedItemsPreview.setText(
null
);
AlertDialog.Builder builder =
new
AlertDialog.Builder(MainActivity.
this
);
builder.setTitle(
"Choose Items"
);
builder.setIcon(R.drawable.image_logo);
builder.setMultiChoiceItems(listItems, checkedItems, (dialog, which, isChecked) -> {
checkedItems[which] = isChecked;
String currentItem = selectedItems.get(which);
});
builder.setCancelable(
false
);
builder.setPositiveButton(
"Done"
, (dialog, which) -> {
for
(
int
i =
0
; i < checkedItems.length; i++) {
if
(checkedItems[i]) {
tvSelectedItemsPreview.setText(String.format(
"%s%s, "
, tvSelectedItemsPreview.getText(), selectedItems.get(i)));
}
}
});
builder.setNegativeButton(
"CANCEL"
, (dialog, which) -> {});
builder.setNeutralButton(
"CLEAR ALL"
, (dialog, which) -> {
Arrays.fill(checkedItems,
false
);
});
builder.create();
AlertDialog alertDialog = builder.create();
alertDialog.show();
});
}
}