Android AlertDialog

Posted vera-bhp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android AlertDialog相关的知识,希望对你有一定的参考价值。

 基本对话框

import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class OneActivity extends AppCompatActivity {

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

        final Context context = this;
        AlertDialog.Builder builder = new AlertDialog.Builder(context);

        builder.setTitle("标题")
                .setIcon(R.mipmap.ic_launcher)
                .setMessage("Hello World")
                .setPositiveButton("OK", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNeutralButton("中性", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                })
                .setNegativeButton("CANCEL", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {

                    }
                });

        AlertDialog dialog = builder.create();
        dialog.show();
    }
}

注1:这里设置了3个类型的按钮(肯定,中性,否定),每种类型按钮只能添加一个 
注2:输入的 Context 为当前 activity,否则会出错

对话框出现之后,点击其他位置,对话框就会消失。有两种方法可以避免这种情况:

(必须先AlertDialog.Builder.create()之后才能调用这两个方法)

方法一:

AlertDialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(
false); dialog.show();

调用这个方法时,按对话框以外的地方不起作用。按返回键还起作用

方法二:

AlertDialog dialog = builder.create();
dialog.setCancelable(false);
dialog.show();

调用这个方法时,按对话框以外的地方不起作用。按返回键也不起作用

DialogFragment

 



以上是关于Android AlertDialog的主要内容,如果未能解决你的问题,请参考以下文章

AlertDialog 在片段中不起作用

getActivity() 在片段的 AlertDialog 中为 null

如何使用 Kotlin 从 Android 中的片段访问另一个片段?

如何在片段中从相机捕获图像,

Android AlertDialog 各种弹框代码

024 Android 自定义样式对话框(AlertDialog)