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

        
}

  

  

posted @ 2015-12-23 12:47  mattle  阅读(132)  评论(0编辑  收藏  举报