Android对话框

Android对话框是作为Activity的一部分被创建和显示的,在程序中通过开发回调方法OnCreateDialog来完成对话框的创建,该方法需要传入代表对话框id参数。如果需要显示对话框,则调用showDialog方法传入对话框的id来显示指定的对话框。当对话框第一次被显示时,Android会调用onCreateDialog方法来创建对话框实例,之后将不再重复创建该实例。同时,每次对话框在被显示之前都会调用onPrepareDialog方法,如果不重写该方法,那么每次显示的对话框将会是最初创建的那个。关闭对话框可以调用Dialog类的dimiss方法来实现,但是要注意的是以这种方法关闭的对话框并不会彻底消失,Android会在后台保留其状态。如果需要让对话框在关闭之后彻底被清除,需要调用removeDialog方法并传入Dialog的id值来彻底释放对话框。如果需要在调用dimiss方法关闭对话框时执行一些特定的工作,则可以为对话框设置OnDismissListener并重写其中的onDismiss方法来开发特定的功能

 

public class TestActivity extends Activity {
   
 final int COMMON_DIALOG = 1;                                //普通对话框id
 
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Button btn = (Button)findViewById(R.id.Button01);       //获取Button对象
        btn.setOnClickListener(new View.OnClickListener(){
         public void onClick(View v){
          showDialog(COMMON_DIALOG);                             //显示对话框
         }             
        });
       
    }
   
    protected Dialog onCreateDialog(int id){                        //重写onCreateDialog方法
     Dialog dialog = null;
     switch(id){                                                                           //对不同的对话框id值进行不同处理
      case COMMON_DIALOG:
       Builder b = new AlertDialog.Builder(this);
       b.setIcon(R.drawable.header);
       b.setTitle(R.string.title);
       b.setMessage(R.string.dialog_msg);
       b.setPositiveButton(R.string.ok,
         new OnClickListener(){
        public void onClick(DialogInterface dialog, int which){
         EditText et = (EditText)findViewById(R.id.EditText01);
         et.setText(R.string.dialog_msg);
        }
       });
       dialog = b.create();
       break;
      default:
       break;
     }
     
     return dialog;
    }
}

 

当需要显示对话框时,Android自动根据showDialog方法传入的对话框id值调用onCreateDialog方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值