Android AlertDialog Single Button

后端 未结 9 1701
陌清茗
陌清茗 2020-12-12 12:08

I\'d like to have an AlertDialog builder that only has one button that says OK or Done or something, instead of the default yes and no. Can that be done with the standard Al

9条回答
  •  我在风中等你
    2020-12-12 12:18

    Alert Dialog

    alert dialog with a single button.

    alert dialog with an icon.

    alert dialog with three-button.

    alert dialog with a choice option, radio button.

    alert dialog with the multi-choice option, checkbox button.

    
        Alert Dialog
    
        Info Dialog
        Icon Dialog
        Rate Dialog
        Single Options Dialog
        Multi Options Dialog
    
        
            Apple
            Banana
            Orange
            Grapes
            Watermelon
            Nothing
        
    
    

    
    
    
        

    public class MainActivity extends AppCompatActivity {
    
        String select;
        String[] fruitNames;
        Button infoDialog, iconDialog, rateDialog, singleOptionDialog, multiOptionDialog;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            infoDialog = findViewById(R.id.info_dialog);
            rateDialog = findViewById(R.id.rate_dialog);
            iconDialog = findViewById(R.id.icon_dialog);
            singleOptionDialog = findViewById(R.id.single_dialog);
            multiOptionDialog = findViewById(R.id.multi_dialog);
            infoDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    infoDialog();
                }
            });
            rateDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    ratingDialog();
                }
            });
            iconDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    iconDialog();
                }
            });
            singleOptionDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    SingleSelectionDialog();
                }
            });
            multiOptionDialog.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    MultipleSelectionDialog();
                }
            });
        }
    
        /*Display information dialog*/
        private void infoDialog() {
            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
            dialogBuilder.setTitle("Info");
            dialogBuilder.setMessage("Some informative message for the user to do that.");
            dialogBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            dialogBuilder.create().show();
        }
    
        /*Display rating dialog*/
        private void ratingDialog() {
            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
            dialogBuilder.setTitle("Rate Us");
            dialogBuilder.setMessage("If you liked it, please rate it. It will help us grow.");
            dialogBuilder.setPositiveButton("Rate", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            dialogBuilder.setNegativeButton("Leave it", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            dialogBuilder.setNeutralButton("May be, later", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            dialogBuilder.create().show();
        }
    
        /*Dialog with icons*/
        private void iconDialog() {
            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this);
            dialogBuilder.setTitle("Info");
            dialogBuilder.setIcon(R.mipmap.ic_launcher_round);
            dialogBuilder.setMessage("You know, you could have provided some valuable message here!");
            dialogBuilder.setPositiveButton("Got it", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    dialog.dismiss();
                }
            });
            dialogBuilder.create().show();
        }
    
        /*Dialog to select single option*/
        private void SingleSelectionDialog() {
            fruitNames = getResources().getStringArray(R.array.fruit_name);
            AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(MainActivity.this);
            dialogBuilder.setTitle("Which fruit you want to eat?");
            dialogBuilder.setSingleChoiceItems(fruitNames, -1, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    //Toast.makeText(MainActivity.this, checkedItem, Toast.LENGTH_SHORT).show();
                    select = fruitNames[i];
                }
            });
            dialogBuilder.setPositiveButton("Done", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "Item selected: " + select, Toast.LENGTH_SHORT).show();
                }
            });
            dialogBuilder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "Cancel", Toast.LENGTH_SHORT).show();
                }
            });
            dialogBuilder.create().show();
        }
    
        /*Dialog to select multiple options*/
        public void MultipleSelectionDialog() {
            final String[] items = {"Apple", "Banana", "Orange", "Grapes", "Watermelon"};
            final ArrayList selectedList = new ArrayList<>();
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Choice multi item fruit list");
            builder.setMultiChoiceItems(items, null, new DialogInterface.OnMultiChoiceClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    if (isChecked) {
                        selectedList.add(which);
                    } else if (selectedList.contains(which)) {
                        selectedList.remove(which);
                    }
                }
            });
            builder.setPositiveButton("DONE", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialogInterface, int i) {
                    ArrayList selectedStrings = new ArrayList<>();
                    for (int j = 0; j < selectedList.size(); j++) {
                        selectedStrings.add(items[selectedList.get(j)]);
                    }
                    Toast.makeText(getApplicationContext(), "Items selected: " + Arrays.toString(selectedStrings.toArray()), Toast.LENGTH_SHORT).show();
                }
            });
            builder.show();
        }
    }
    

提交回复
热议问题