Onelong

分享知识,与你一起进步......
RSS icon Home icon
  • android 自定义对话框

    post by onelong / 2010-6-1 21:17 Tuesday [android]

    说到对话框你肯定会想到AlertDialog.Builder。当然这次不是用AlertDialog.Builder来实现的!而是Dialog类

    AlertDialog.Builder提供的方法有:
    setTitle():给对话框设置title.
    setIcon():给对话框设置图标。
    setMessage():设置对话框的提示信息
    setItems():设置对话框要显示的一个list,一般用于要显示几个命令时
    setSingleChoiceItems():设置对话框显示一个单选的List
    setMultiChoiceItems():用来设置对话框显示一系列的复选框。
    setPositiveButton():给对话框添加”Yes”按钮。
    setNegativeButton():给对话框添加”No”按钮。
    那么在Dialog类怎样实现的呢?当然是layout啦,你可以自定义一个xml来布置你对话框
    看看例子和源码吧
    package com.hl;

    import android.app.Activity;
    import android.app.Dialog;
    import android.content.Context;
    import android.os.Bundle;
    import android.view.Gravity;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.Button;
    public class MyDialog extends Activity implements android.view.View.OnClickListener {
     Button btn1=null;
        Button btn2=null;
        Button btn3=null;
     @Override
      public void onCreate(Bundle savedInstanceState) {
             super.onCreate(savedInstanceState);
             setContentView(R.layout.main);
             btn1=(Button)findViewById(R.id.b1);
             btn2=(Button)findViewById(R.id.b2);
             btn3=(Button)findViewById(R.id.b3);
             btn1.setOnClickListener(this);
             btn2.setOnClickListener(this);
             btn3.setOnClickListener(this);
         }
     @Override
     public void onClick(View v) {
      switch(v.getId()){
            case R.id.b1:
                break;
            case R.id.b2:
            case R.id.b3:
                new MyDialogs(this).setDisplay();
                break;
            default:
      
     }
    }
    class MyDialogs extends Dialog implements android.view.View.OnClickListener{
     private Button b1;
        private Window window=null;
       
        public MyDialogs(Context context){
            super(context);
        }
        public void setDisplay(){
         setContentView(R.layout.dialog);//设置对话框的布局
         b1=(Button)findViewById(R.id.clo);
         b1.setOnClickListener(this);
         setProperty();
            setTitle("自定义对话框");//设定对话框的标题
            show();//显示对话框  
        }
         //要显示这个对话框,只要创建该类对象.然后调用该函数即可.
        public void setProperty(){
             window=getWindow();//   得到对话框的窗口.
             WindowManager.LayoutParams wl = window.getAttributes();
             wl.x =0;//这两句设置了对话框的位置.0为中间
             wl.y =180;
             wl.alpha=0.6f;//这句设置了对话框的透明度
             wl.gravity=Gravity.BOTTOM;        
             window.setAttributes(wl);
        }
      @Override
      public void onClick(View v) {
       dismiss();//取消   
      }
      }
    }


    附件下载:
    MyDialog.rar 40.76KB

    引用地址:
     

    我要评论