android详细的对话框AlertDialog.Builder使用方法

通过new一个AlertDialog.Builder对象,构造一个具有Title(setTitle)、message(setMessage)和确认按钮PositiveButton(setPositiveButton)的对话窗口。

其中方法的定义为:

setTitle设置标题
 setIcon设置对话框图标
 setMessage简单消息框
 setItems设置要在对话框中显示的项目列表
 setView设置自定义的对话框样式
 setSingleChoiceItems设置对话框显示一个单选框
 setMultiChoiceItems设置对话框显示一系列的复选框
 setPositiveButton设置对话框显示一个确定的按钮
 setNeutralButton设置对话框显示一个退出按钮
 setNegativeButton 设置对话框显示一个取消按钮
 create创建一个AlertDialog对话框
 show显示对话框

具体实现如下

public class MainActivity extends Activity{
	private Button button1;
	private MainActivity activity;
	private TextView tview;
	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		activity = this;
		
		button1 = (Button) findViewById(R.id.button1);
		
		button1.setOnClickListener(button1_OnClickListener);	
		
		
	}
	
	private OnClickListener button1_OnClickListener = new OnClickListener() {
		@Override
		public void onClick(View v) {
			/**
			 * 设置弹出对话框
			 * */
			new AlertDialog.Builder(activity).setTitle(R.string.hello_world).setMessage(R.string.app_name)
			.setPositiveButton(R.string.action_settings, new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					//这里定义对话框按钮单击之后要运行的事件
				}
			}).show();
		
			
			
		}
	};		
}

要弹出一个由两个按钮的对话框可以这样

new AlertDialog.Builder(activity).setTitle("离开")
		.setMessage("真要啊").setNegativeButton("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		}).setPositiveButton("确定", new DialogInterface.OnClickListener(){
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				finish();
			}
		}).show();

一个列表框的实现

java代码

	new AlertDialog.Builder(MainActivity.this)
			.setTitle(R.string.str_alert_title)
			.setIcon(R.drawable.downcom)
			.setItems(R.array.what_eat, new DialogInterface.OnClickListener() {
				
				@Override
				public void onClick(DialogInterface dialog, int which) {
					// TODO Auto-generated method stub
					CharSequence strDialogBody = getString(R.string.str_alert_body);
					String[] aryShop = getResources().getStringArray(R.array.what_eat);
					new AlertDialog.Builder(MainActivity.this)
					.setMessage(strDialogBody+aryShop[which])
					.setPositiveButton("确定了", new DialogInterface.OnClickListener() {
						
						@Override
						public void onClick(DialogInterface dialog, int which) {
							// TODO Auto-generated method stub
							/*
							 * 第一个参数:当前上下午的环境。可用getApplicationContext()或this
							 * 第二个参数:要显示的字符串
							 * 第三个参数:显示时间的长短。Toast有默认的两个LENGTH_SHORT(短)和LENGTH_LONG(长),也可以使用毫秒2000ms
							 * */
							Toast.makeText(MainActivity.this,"zheyao",Toast.LENGTH_SHORT).show();
						}
					})
					.setNegativeButton(R.string.str_ok, new DialogInterface.OnClickListener() {
						
						@Override
						public void onClick(DialogInterface dialog, int which) {
							// TODO Auto-generated method stub
							Toast toast=Toast.makeText(getApplicationContext(), "自定义显示位置的Toast", Toast.LENGTH_SHORT); 
							//第一个参数:设置toast在屏幕中显示的位置。我现在的设置是居中靠顶 
							//第二个参数:相对于第一个参数设置toast位置的横向X轴的偏移量,正数向右偏移,负数向左偏移 
							//第三个参数:同的第二个参数道理一样 
							//如果你设置的偏移量超过了屏幕的范围,toast将在屏幕内靠近超出的那个边界显示 
							toast.setGravity(Gravity.TOP|Gravity.CENTER, -50, 100); 
							//屏幕居中显示,X轴和Y轴偏移量都是0 
							//toast.setGravity(Gravity.CENTER, 0, 0); 
							toast.show();
					
						}
					}).show();
				}
			}).show();
XML文件中的定义




    demo
    Settings
    Hello world!
    按我开始
    开始我的选择
    你的选择是:
    确定
    
    	麻辣火锅
    	背景烤鸭
    	满汉全席
    
    
	


自定义弹出对话框

android详细的对话框AlertDialog.Builder使用方法_第1张图片

可以看出,在自定义的AlertDialog对话框中,我们加入了两个TextView控件(用来显示“帐号:”和“密码:”)以及两个EditText控件(用来输入“帐号”和“密码”)。

  如何将这些控件加入到自定义的AlertDialog对话框中呢?

  首先,我们需要创建一个xml布局文件来加载这些控件。这里,我创建了一个名为“logindialog.xml”的布局文件。在该布局文件中完成对上述四个控件的布局即可,具体的实现方法如下:


  
    
        
    
        
    
        
    
        

  

 完成xml布局文件的编写之后,我们需要将该xml文件动态加载并转化为View对象,然后通过AlertDialog.Builder类的setView()方法将该View对象加载进来,就可以完成自定义AlertDialog对话框的创建了。具体的实现方法如下:

/*
    * Function    :    构造函数
    * Param       :    context上下文对象
    * Author      :    博客园-依旧淡然
    */
    public LoginDialog (Context context) {
            
        this.mContext = context;
            
        //动态加载布局生成View对象
        LayoutInflater layoutInflater = LayoutInflater.from(mContext);
        View longinDialogView = layoutInflater.inflate(R.layout.logindialog, null);
            
        //获取布局中的控件
        mUserName = (EditText)longinDialogView.findViewById(R.id.edit_username);
        mPassword = (EditText)longinDialogView.findViewById(R.id.edit_password);
            
        //创建一个AlertDialog对话框
        longinDialog = new AlertDialog.Builder(mContext)
            .setTitle("登录框")
            .setView(longinDialogView)                //加载自定义的对话框式样
            .setPositiveButton("确定", this)
            .setNeutralButton("取消", this)
            .create();  
            
        longinDialog.show();
    }



你可能感兴趣的:(android,android,框)