Android开发:常用Dialog的几种格式显示,普通,列表,单选,多选,可编辑dialog等

Android中几种常见的dialog显示格式,话不多说,直接先上图



首先是Java代码

import android.app.Dialog;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private Button btn_Normal;      // 普通
    private Button btn_List;        // 列表
    private Button btn_Choice;      // 单选
    private Button btn_MoreChoice;  // 多选
    private Button btn_EditText;    //可输入

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        btn_Normal = findViewById(R.id.normal_btn);
        btn_List = findViewById(R.id.list_btn);
        btn_Choice = findViewById(R.id.choice_btn);
        btn_MoreChoice = findViewById(R.id.more_choice_btn);
        btn_EditText =  findViewById(R.id.editext_btn);

        ButtonOnClickListener bocl = new ButtonOnClickListener();
        btn_Normal.setOnClickListener(bocl);
        btn_List.setOnClickListener(bocl);
        btn_Choice.setOnClickListener(bocl);
        btn_MoreChoice.setOnClickListener(bocl);
        btn_EditText.setOnClickListener(bocl);
    }

    class ButtonOnClickListener implements View.OnClickListener{
        @Override
        public void onClick(View v) {
            switch (v.getId()) {
                case R.id.normal_btn:
                    dialogNormal();     // 普通
                    break;
                case R.id.list_btn:
                    dialogList();       // 列表
                    break;
                case R.id.choice_btn:
                    dialogChoice();     // 单选
                    break;
                case R.id.more_choice_btn:
                    dialogMoreChoice(); // 多选
                    break;
                case R.id.editext_btn:
                    dialogEditText();   //可编辑
                    break;
                default:
                    break;
            }
        }
    }

    /**
     * 普通
     */
    private void dialogNormal() {
        DialogInterface.OnClickListener dialogOnclicListener = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                switch (which) {
                    case Dialog.BUTTON_POSITIVE:
                        Toast.makeText(MainActivity.this, "确认",
                                Toast.LENGTH_SHORT).show();
                        break;
                    case Dialog.BUTTON_NEGATIVE:
                        Toast.makeText(MainActivity.this, "取消",
                                Toast.LENGTH_SHORT).show();
                        break;
                    case Dialog.BUTTON_NEUTRAL:
                        Toast.makeText(MainActivity.this, "忽略",
                                Toast.LENGTH_SHORT).show();
                        break;
                }
            }
        };

        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setTitle("普通对话框");
        builder.setMessage("是否确认退出?");      //设置内容
        builder.setPositiveButton("确认", dialogOnclicListener);
        builder.setNegativeButton("取消", dialogOnclicListener);
        builder.setNeutralButton("忽略", dialogOnclicListener);
        builder.create().show();
    }

    /**
     * 列表
     */
    private void dialogList() {
        final String items[] = {"列表1", "列表2", "列表3", "列表4"};

        AlertDialog.Builder builder = new AlertDialog.Builder(this,0);
        builder.setTitle("列表");
        builder.setIcon(R.mipmap.ic_launcher);
        // 设置列表显示,注意设置了列表显示就不要设置builder.setMessage()了,否则列表不起作用。
        builder.setItems(items, new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                Toast.makeText(MainActivity.this, items[which],
                        Toast.LENGTH_SHORT).show();

            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT)
                        .show();
            }
        });
        builder.create().show();
    }

    /**
     * 单选
     */
    private void dialogChoice() {
        final String items[] = {"男", "女", "其他"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this,0);
        builder.setTitle("单选");
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setSingleChoiceItems(items, 0,
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                        Toast.makeText(MainActivity.this, items[which],
                                Toast.LENGTH_SHORT).show();
                    }
                });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT)
                        .show();
            }
        });
        builder.create().show();
    }

    /**
     * 多选
     */
    private void dialogMoreChoice() {
        final String items[] = {"JAVA", "C++", "JavaScript", "MySQL"};
        final boolean selected[] = {true, false, true, false};
        AlertDialog.Builder builder = new AlertDialog.Builder(this,0);
        builder.setTitle("多选");
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setMultiChoiceItems(items, selected,
                new DialogInterface.OnMultiChoiceClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which,
                                        boolean isChecked) {

                        Toast.makeText(MainActivity.this,
                                items[which] + isChecked, Toast.LENGTH_SHORT)
                                .show();
                    }
                });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.dismiss();
                Toast.makeText(MainActivity.this, "确定", Toast.LENGTH_SHORT)
                        .show();
            }
        });
        builder.create().show();
    }

    /**
     * 可输入的对框框
     */
    private void dialogEditText() {
        final EditText editText = new EditText(this);
        editText.setHint("  Leslie___Cheung");
        final AlertDialog.Builder builder = new AlertDialog.Builder(this,0);
        builder.setTitle("可编辑");
        builder.setIcon(R.mipmap.ic_launcher);
        builder.setView(editText);
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, editText.getText().toString() + "", Toast.LENGTH_LONG).show();
            }
        });
        builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                dialog.cancel();
            }
        });
        builder.create().show();
    }
}

下来是布局文件




    


OK,大概就是这样了,代码也比较的短,如果没弄懂的可以在底下留言



你可能感兴趣的:(Android)