对话框的使用

本文详细介绍了Android开发中常用的三种对话框:PopupWindow、AlertDialog及ProgressDialog的使用方法。包括创建步骤、设置属性及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、PopupWindow对话框:
使用步骤:
1. 创建popwindow布局文件
2. 在Activity中,创建PopWindow实例对象
(1)实例化LayoutInflater:LayoutInflater.from(this)
(2)通过LayoutInfalter把xml布局文件转换成View实例对象
(3)实例化PopWindow对象PopWindow pop=new PopupWindow(contentView, 400, 500);
注意:要指定宽高,不然不显示
3. 调用 PopupWindow 的 showAsDropDown(View v) 将其作为 v 组件的下拉组件显示出来;
或调用 PopupWindow 的 showAtLocation() 方法将其在指定位置显示出来。
4. 如果要对popupwindow中的控件设置交互事件,请用Popupwindow中的View通过findViewById找到对应控件,再设置监听
5 .如果希望PopWindow像菜单一样,点击四周就消息,需要给PopupWindow设置背景,再设置setOutSideTouchable
(1)设置透明背景,不影响其他任何东西
pop.setBackgroundDrawable(new ColorDrawable(0x00000000));
(2)设置外部可触摸,即外部点击时,该pop消失
pop.setOutsideTouchable(true);
6. 例子如下:
/**
* popupWinddow对话框
*@paramview
*/
public voidpopupWindow(View view){
//准备对话框布局文件,转成view
View contentView = LayoutInflater.from(this).inflate(R.layout.dialog_popop_window,null);
Button btn_sure= (Button) contentView.findViewById(R.id.btn_sure);
Button btn_cancel= (Button) contentView.findViewById(R.id.btn_cancle);
//加载view
finalPopupWindow popupWindow=newPopupWindow(contentView,400,500);
btn_sure.setOnClickListener(newView.OnClickListener() {
@Override
public voidonClick(View v) {
popupWindow.dismiss();
}
});

//设置对话框参数
popupWindow.setOutsideTouchable(true);//点击空白处对话框消失
//显示对话框
// popupWindow.showAsDropDown(view);//控件下方显示对话框
popupWindow.setBackgroundDrawable(newColorDrawable(Color.GRAY));//指定显示位置
popupWindow.showAtLocation(view, Gravity.CENTER,0,0);

}
二、AlertDialog对话框:
使用步骤:
1. 创建 AlertDialog.Builder 对象。
2. 调用 Builder 对象的 setTitle() 或 setCustomTitle() 方法设置标题。
3. 调用 Builder 对象的 setIcon() 设置图标。
4. 调用 Builder 的相关设置方法设置对话框内容。提供了6种设置内容的方法:
(1)setMessage() :设置对话内容为简单文本内容。
(2)setItems() :设置对话内容为简单列表框。
(3)setSingleChoiceItems() :设置对话内容为单选列表项。
(4)setMultiChoiceItems() :设置对话内容为多选列表项。
(5)setAdapter() :设置对话内容为自定义列表项。
(6)setView() :设置对话内容为自定义 View。
5.调用 Builder 的如下方法添加多个按钮:
(1)setPositiveButton() :是,确定
(2)setNegativeButton() :否,取消
(3)setNeutralButton() :中立,放弃?
6. 调用 Builder 的 create() 方法创建 AlertDialog 对象。

7. 调用 AlertDialog 对象的 show() 方法显示对话框

三、ProgressDialog对话框
ProgressDialog 代表了进度对话框。使用其创建进度对话框有两种方式:
1. 如果只是创建简单的进度对话框,调用 ProgressDialog 提供的静态 show() 方法显示对话框即可。

2. 创建 ProgressDialog,然后调用方法设置对话框里的进度条,完成后显示对话框。

设置进度条的方法:

(1)setIndeterminate(boolean indeterminate) :进度条不显示进度值。
(2)setMax(int max) :进度条的最大值。
(3)setMessage(CharSequence message) :设置对话框里显示的消息。
(4)setProgress(int value) :设置当前进度值。在show()后调用
(5)setProgressStyle(int style) :设置进度条的风格
(6)setProgressStyle设置风格:
ProgressDialog.STYLE_HORIZONTAL 水平进度条风格
ProgressDialog.STYLE_SPINNER 转圈风格
3. 例子如下:
// 点击弹出ProgressDialog
public void proDailog(View view) {
// 1.ProgressDialog.show
ProgressDialog.show(this, "正在下载", "正在下载XXX");
}

// 点击创建ProgressDialog
public void newProgressDialog(View view) {
// 1.创建ProgressDailog对象
ProgressDialog pd = new ProgressDialog(this);
// 2.设置标题、消息内容
pd.setTitle("下载提示");
pd.setMessage("正在下载XXX");
// 3.设置风格
// 转圈风格
// pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 水平风格
pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
// 设置当前进度为不精碀:true表示不精确进度,false表示精确进度
pd.setIndeterminate(false);
// 设置不可取消
pd.setCancelable(false);
// 4.显示
pd.show();
// 设置当前进度,一定要在show()方法之后调用
pd.setProgress(55);
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值