Android 对话框Dialog的使用,最基本,最基础的使用

本文详细介绍了如何在Android中使用Activity创建和显示对话框,包括onCreateDialog(int id)回调方法、对话框的基本使用、自定义对话框、设置对话框属性等核心内容。

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

  对话框经常作为Activity的一部分来创建和显示。
你通常应该从protected Dialog Activity.onCreateDialog (int id) 回调方法里创建对话框。
当你使用这个回调函数时,Android系统会有效的设置这个Activity为每个对话框的所有者,
从而自动管理每个对话框的状态并挂靠到Activity上。这样,每个对话框继承这个Activity的特定属性。
比如,当一个对话框打开时,菜单键显示为这个Activity定义的选项菜单。 
注意: 如果你决定在onCreateDialog()方法之外创建一个对话框,它将不会被附着到活动上。不过,你可以通过setOwnerActivity(Activity)把它附着到一个活动上。
当你想要显示一个对话框时,调用showDialog(int id) 方法并传递一个唯一标识这个对话框的整数。 
当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。
这个回调方法被传以和showDialog(int id)相同的ID。当你创建这个对话框后,在Activity的最后返回这个对象。 
在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(int id, Dialog). 
如果你想在每一次对话框被打开时改变它的任何属性,你可以定义这个方法。这个方法在每次打开对话框时被调用,
而onCreateDialog(int) 仅在对话框第一次打开时被调用
。如果你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这个方法也被传递以对话框的ID,
和在onCreateDialog()中创建的对话框对象。(个人理解是,在Activity里第一次show某个Dialog,
则先调用onCreateDialog,得到返回的Dialog对象并挂靠在Activity,保存Dialog对象的引用,然后才显示Dialog。这样子,
下次再show Dialog就不用重新创建Dialog对象,而是重用旧的)      定义onCreateDialog(int) 和 onPrepareDialog(int, Dialog)
 回调函数的最佳方法是使用一个switch 语句来检查传递进来的id 参数。每个case 应该检查一个唯一的对话框ID然后创建和定义相应的对话框
下面是对话框最基本的使用:public class MainActivity extends Activity {
	Button button;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		button = (Button)findViewById(R.id.buttonId);
		button.setOnClickListener(new ButtonListener());
	}
	
	class ButtonListener implements android.view.View.OnClickListener{

		@Override
		public void onClick(View v) {
			//创建一个AlertDialog.Builer对象,该对象代表了AlertDialog的创建器
			AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
			//设置对话框的标题
			builder.setTitle("警告对话框");
			//设置对话框显示的信息这里有点调皮了,有利于增加记忆
			builder.setMessage("手机5秒以后爆炸");
			
			OnClickListener listener = new OnClickListener() {
				@Override
				public void onClick(DialogInterface dialog, int buttonId) {
					Log.d("Dialog", "对话框的按钮被点击,id的值为:" + buttonId);
				}
			};
			
			builder.setPositiveButton("确定", listener);
			//生成AlertDialog对象
			AlertDialog dialog = builder.create();
			//显示对话框
			dialog.show();
		}
		
	}
}

上面是最基本的了

下面延伸下:

加上这句话就是让对话框不可以取消,如果想让其取消把false设置为true;

//设置对话框是否可以取消
builder.setCancelable(false);

同时对话框还可以设置三个按钮:确定,中立,取消。三个

builder.setPositiveButton("确定", listener);
builder.setNegativeButton("取消", listener);
builder.setNeutralButton("中立", listener);

后面listener是监听,监听对话框的按钮的操作

链接请点此处


 

                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值