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);
}
}

浙公网安备 33010602011771号