基本对话框
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