Android中对话框(Dialog)的创建方法

本文详细介绍了如何在Android应用中创建并配置AlertDialog,包括基本的创建与显示方法、常用方法、可选方法以及从资源文件加载对话框视图等。此外,还提供了使用Activity显示对话框的示例。

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

1,创建
new AlertDialog.Builder(Context context)
一些设置:
create()创建
show()显示
dismiss()退出对话框
2,常用方法
setIcon:设置图标
setTitle:设置标题
setPositiveButton:设置 确定按钮
setNegativeButton:设置 取消按钮
setNeutralButton:设置 忽略按钮
setCancelable(Boolean arg0)//按回退键是否可以取消
3,可选但唯一的方法
setMessage 设置显示消息
setItems 显示单选列表,选择后对话框退出
setSingleChoiceItems 显示单选列表,选择后对话框不退出
setMultiChoiceItems 显示多选列表,选择后对话框不退出

4,从资源文件加载对框视图
通过setView( LayoutInflater.from(Context context).inflate(resource, null) )安装视图
5,通过Activity.showDialog(int id)来显示对话框
重写Activity的以下方法
protected Dialog onCreateDialog(int id) //Dialog第一次创建时调用.这里需要通过AlertDialog.create()返回创建的对话框
protected onPrepareDialog(int id, Dialog dialog) //Dialog显示前调用
6,其他对话框
ProgressDialog对话框
setIndeterminate 设置进度条是否自动运转
setProgressStyle 设置显示风格;
ProgressDialog.STYLE_HORIZONTAL/ProgressDialog.STYLE_SPINNER
setProgress 设置进度,只有对话框显示后才有用
setCancelable(Boolean arg0)//按回退键是否可以取消,进度条对框框默认不取消
setMessage() 设置显示内容

最简单的显示方法:
public static ProgressDialog show (Context context, CharSequence title, CharSequence message)
TimePickerDialog/DatePickerDialog
例子:“从配置文件加载对话框视图”
public void inputPwd() {

//LayoutInflater是用来找layout下xml布局文件,并且实例化
LayoutInflater inflater = LayoutInflater.from(Main.this);
final View layView = inflater.inflate(R.layout.dialogview, null);

//加载配置文件来创建一个对话框
Builder dialog = new AlertDialog.Builder(Main.this).setView(layView);

  dialog.setTitle("输入密码");
  //添加 " OK " 按钮的单击事件
  dialog.setPositiveButton(" OK ", new DialogInterface.OnClickListener() {
   @Override
public void onClick(DialogInterface dialog, int which) {
    //必须在findViewById()方法之前写上layView,否则默认为main.xml
       EditText secondPwd = (EditText) layView.findViewById(R.id.secondPwd); 

 String inputPwd = secondPwd.getText().toString(); //从对话框中获取到的数据赋值给inputPwd

 String pwdDB = getPassWord(); //从数据库中获取密码,并将其赋值给pwdDB

   if (inputPwd.equals(pwdDB)) { //如果输入的密码等于数据库中的密码,返回首页
   //返回到首页
   Intent intent = new Intent(Intent.ACTION_MAIN);
   startActivity(intent);
 }
}

})

.setNeutralButton(“CANCEL”, new DialogInterface.OnClickListener() {

@Override
public void onClick(DialogInterface dialog, int which) {
 System.out.println("++ CANCEL ++");
}

})
.create();
dialog.show();
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值