找到一个在Android上创建阻塞式模态对话框的方法

转自:  http://blog.csdn.net/winux/article/details/6269687

给个例子好了

  1. import android.app.Activity;  
  2. import android.app.Dialog;  
  3. import android.os.Handler;  
  4. import android.os.Looper;  
  5. import android.os.Message;  
  6. import android.text.method.PasswordTransformationMethod;  
  7. import android.text.method.TransformationMethod;  
  8. import android.view.View;  
  9. import android.widget.CheckBox;  
  10. import android.widget.EditText;  
  11. import android.widget.TextView;  
  12. public class PasswordDialog extends Dialog  
  13. {  
  14.     int dialogResult;  
  15.     Handler mHandler ;  
  16.       
  17.     public PasswordDialog(Activity context, String mailName, boolean retry)  
  18.     {  
  19.           
  20.         super(context);  
  21.         setOwnerActivity(context);  
  22.         onCreate();  
  23.         TextView promptLbl = (TextView) findViewById(R.id.promptLbl);  
  24.         promptLbl.setText("请输入密码/n" + mailName);  
  25.     }  
  26.     public int getDialogResult()  
  27.     {  
  28.         return dialogResult;  
  29.     }  
  30.     public void setDialogResult(int dialogResult)  
  31.     {  
  32.         this.dialogResult = dialogResult;  
  33.     }  
  34.     /** Called when the activity is first created. */  
  35.       
  36.     public void onCreate() {  
  37.         setContentView(R.layout.password_dialog);  
  38.         findViewById(R.id.cancelBtn).setOnClickListener(new android.view.View.OnClickListener() {  
  39.               
  40.             @Override  
  41.             public void onClick(View paramView)  
  42.             {  
  43.                 endDialog(DialogResult.CANCEL);  
  44.             }  
  45.             });  
  46.         findViewById(R.id.okBtn).setOnClickListener(new android.view.View.OnClickListener() {  
  47.               
  48.             @Override  
  49.             public void onClick(View paramView)  
  50.             {  
  51.                 endDialog(DialogResult.OK);  
  52.             }  
  53.             });  
  54.         }  
  55.       
  56.     public void endDialog(int result)  
  57.     {  
  58.         dismiss();  
  59.         setDialogResult(result);  
  60.         Message m = mHandler.obtainMessage();  
  61.         mHandler.sendMessage(m);  
  62.     }  
  63.       
  64.     public int showDialog()  
  65.     {  
  66.         mHandler = new Handler() {  
  67.             @Override  
  68.               public void handleMessage(Message mesg) {  
  69.                   // process incoming messages here  
  70.                 //super.handleMessage(msg);  
  71.                 throw new RuntimeException();  
  72.               }  
  73.           };  
  74.         super.show();  
  75.         try {  
  76.             Looper.getMainLooper().loop();  
  77.         }  
  78.         catch(RuntimeException e2)  
  79.         {  
  80.         }  
  81.         return dialogResult;  
  82.     }  
  83.       
  84. }  

 

PasswordDialog dlg = new PasswordDialog(this);

if(dlg.showDialog() == DialogResult.OK)

{

blabla, 和其他平台上的阻塞对话框一摸一样的

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值