Android: create a popup that has multiple selection options

前端 未结 4 969
半阙折子戏
半阙折子戏 2020-12-04 11:33

I\'ve been searching around trying to figure out how to create a popup or a dialog that has 4 options to choose from.

I see this picture on the Android developer sit

相关标签:
4条回答
  • 2020-12-04 12:11

    ALTERNATIVE OPTION

    This is my first post so I'm excited to share my code! This worked for me:

    Place these two lines above the OnCreate event

    final String[] Options = {"Red", "Blue"};
    AlertDialog.Builder window;
    

    Place this code on the event that will trigger this

    window = new AlertDialog.Builder(this);
    window.setTitle("Pick a color");
    window.setItems(Options, new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            if(which == 0){
               //first option clicked, do this...
    
            }else if(which == 1){
               //second option clicked, do this...
    
            }else{
            //theres an error in what was selected
                Toast.makeText(getApplicationContext(), "Hmmm I messed up. I detected that you clicked on : " + which + "?", Toast.LENGTH_LONG).show();
            }
        }
    });
    
    window.show();
    
    0 讨论(0)
  • 2020-12-04 12:24

    You can create a String array with the options you want to show there and then pass the array to an AlertDialog.Builder with the method setItems(CharSequence[], DialogInterface.OnClickListener).

    An example:

    String[] colors = {"red", "green", "blue", "black"};
    
    AlertDialog.Builder builder = new AlertDialog.Builder(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]
        }
    });
    builder.show();
    

    The output (on Android 4.0.3):

    Output

    (Background map not included. ;))

    0 讨论(0)
  • 2020-12-04 12:32

    The pop ups are nothing but AlertDialog.So you just need to create AlertDialog, then inflate your desired view using LayoutInflater and set the inflated view using setView() method of AlertDialog

    0 讨论(0)
  • 2020-12-04 12:34

    Try this :

    public void onClick(View v) {
    
        final String[] fonts = {
            "Small", "Medium", "Large", "Huge"
        };
    
        AlertDialog.Builder builder = new AlertDialog.Builder(TopicDetails.this);
        builder.setTitle("Select a text size");
        builder.setItems(fonts, new DialogInterface.OnClickListener() {@
            Override
            public void onClick(DialogInterface dialog, int which) {
                if ("Small".equals(fonts[which])) {
                    Toast.makeText(TopicDetails.this, "you nailed it", Toast.LENGTH_SHORT).show();
                } else if ("Medium".equals(fonts[which])) {
                    Toast.makeText(TopicDetails.this, "you cracked it", Toast.LENGTH_SHORT).show();
                } else if ("Large".equals(fonts[which])) {
                    Toast.makeText(TopicDetails.this, "you hacked it", Toast.LENGTH_SHORT).show();
                } else if ("Huge".equals(fonts[which])) {
                    Toast.makeText(TopicDetails.this, "you digged it", Toast.LENGTH_SHORT).show();
                }
                // the user clicked on colors[which]
    
            }
        });
        builder.show();
    }
    
    0 讨论(0)
提交回复
热议问题