您的位置:首页 > 移动开发 > Android开发

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

2014-08-13 12:30 477 查看
  对话框经常作为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是监听,监听对话框的按钮的操作

链接请点此处



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: