Android对话框 - Dialog
在Android中实现对话框可以使用AlertDialog.Builder类,也可以自定义对话框,下面分别通过一个例子加以说明
1. 使用 AlertDialog.Builder 类创建对话框
在使用这种方法创建对话框之前,我们先来了解一下 AlertDialog.Builder 中常用的方法
a. setTitle(); // 给对话框设置title
b. setIcon(); // 给对话框设置图标
c. setMessage(); // 给对话框设置提示信息
d. setPositiveButton(); // 给对话框添加"确定"按钮
e. setNegativeButton(); // 给对话框添加"取消"按钮
下面将创建一个对话框,弹出一个标题为"提示信息",信息内容为"确定退出吗",并有一个"确定"按钮和一个"取消"按钮,并为"确定"按钮添加监听事件,代码如下:
new AlertDialog.Builder(context) .setTitle("提示信息") .setMessage("确定退出吗") .setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { // TODO Auto-generated method stub finish(); } }) .setNegativeButton("取消", null) .show();
2. 自定义对话框
public class MyDialog extends Dialog { private LayoutInflater inflater; public MyDialog(Context context) { super(context); inflater = LayoutInflater.from(context); } @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(inflater.inflate(R.layout.dialog, nul)); } }
通过 new MyDialog().show(); 弹出自定义对话框,然而,呈现的效果为:对话框多出一块标题栏,而且外面还有边框。这是因为这些都是 Dialog 的默认样式,如果不需要,则需要添加我们自己自定义的样式,在values目录下的styles.xml文件添加以下内容:
<style name="Dialog_NoTitle_NoWindowBackgroud" parent="@android:style/Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:windowBackgroud">@android:color/transparent</item> </style>
修改MyDialog的构造方法即可完成样式的更换
public class MyDialog extends Dialog { public MyDialog(Context context) { super(context, R.style.Dialog_NoTitle_NoBackgroud); inflater = LayoutInflater.from(context); } }