• Android 登陆对话框


     1 public class LoginActivity extends Activity {  
     2   
     3     @Override  
     4     public void onCreate(Bundle savedInstanceState) {  
     5         super.onCreate(savedInstanceState);  
     6   
     7         setContentView(R.layout.activity_login);  
     8   
     9         showWaiterAuthorizationDialog();  
    10     }  
    11   
    12     // 显示对话框  
    13     public void showWaiterAuthorizationDialog() {  
    14   
    15         // LayoutInflater是用来找layout文件夹下的xml布局文件,并且实例化  
    16         LayoutInflater factory = LayoutInflater.from(LoginActivity.this);  
    17         // 把activity_login中的控件定义在View中  
    18         final View textEntryView = factory.inflate(R.layout.activity_login,  
    19                 null);  
    20   
    21         // 将LoginActivity中的控件显示在对话框中  
    22         new AlertDialog.Builder(LoginActivity.this)  
    23         // 对话框的标题  
    24                 .setTitle("登陆")  
    25                 // 设定显示的View  
    26                 .setView(textEntryView)  
    27                 // 对话框中的“登陆”按钮的点击事件  
    28                 .setPositiveButton("登陆", new DialogInterface.OnClickListener() {  
    29                     public void onClick(DialogInterface dialog, int whichButton) {  
    30   
    31                         // 获取用户输入的“用户名”,“密码”  
    32                         // 注意:textEntryView.findViewById很重要,因为上面factory.inflate(R.layout.activity_login,  
    33                         // null)将页面布局赋值给了textEntryView了  
    34                         final EditText etUserName = (EditText) textEntryView  
    35                                 .findViewById(R.id.etuserName);  
    36                         final EditText etPassword = (EditText) textEntryView  
    37                                 .findViewById(R.id.etPWD);  
    38   
    39                         // 将页面输入框中获得的“用户名”,“密码”转为字符串  
    40                         String userName = etUserName.getText().toString()  
    41                                 .trim();  
    42                         String password = etPassword.getText().toString()  
    43                                 .trim();  
    44   
    45                         // 现在为止已经获得了字符型的用户名和密码了,接下来就是根据自己的需求来编写代码了  
    46                         // 这里做一个简单的测试,假定输入的用户名和密码都是1则进入其他操作页面(OperationActivity)  
    47                         if (userName.equals("1") && password.equals("1")) {  
    48                             // 跳转到OperationActivity  
    49                             Intent intent = new Intent();  
    50                             intent.setClass(LoginActivity.this,  
    51                                     OperationActivity.class);  
    52                             startActivity(intent);  
    53                             // 关闭当前页面  
    54                             LoginActivity.this.finish();  
    55   
    56                         } else {  
    57                             Toast.makeText(LoginActivity.this, "密码或用户名错误",  
    58                                     Toast.LENGTH_SHORT).show();  
    59   
    60                             try {  
    61                                 // 注意此处是通过反射,修改源代码类中的字段mShowing为true,系统会认为对话框打开  
    62                                 // 从而调用dismiss()  
    63                                 Field field = dialog.getClass().getSuperclass()  
    64                                         .getDeclaredField("mShowing");  
    65                                 field.setAccessible(true);  
    66                                 field.set(dialog, false);  
    67                                 dialog.dismiss();  
    68   
    69                             } catch (Exception e) {  
    70   
    71                             }  
    72                         }  
    73                     }  
    74                 })  
    75                 // 对话框的“退出”单击事件  
    76                 .setNegativeButton("退出", new DialogInterface.OnClickListener() {  
    77                     public void onClick(DialogInterface dialog, int whichButton) {  
    78                         LoginActivity.this.finish();  
    79                     }  
    80                 })  
    81                 // 设置dialog是否为模态,false表示模态,true表示非模态  
    82                 .setCancelable(false)  
    83                 // 对话框的创建、显示  
    84                 .create().show();  
    85     }  
    86 }  

    来源 :  http://blog.csdn.net/aboy123/article/details/8548930

  • 相关阅读:
    题解 CF432D 【Prefixes and Suffixes】
    题解 P3199 【[HNOI2009]最小圈】
    题解 AT1221 【水筒】
    题解 P4381 【[IOI2008]Island】
    题解 CF1242B 【0-1 MST】
    《数据库系统概论》 -- 3.1 SQL概论和DDL
    《数据库系统概论》 -- 2. 关系操作
    《数据库系统概论》 -- 1. 绪论
    配置vim成为IDE
    ubuntu--软件管理
  • 原文地址:https://www.cnblogs.com/wolfe/p/4348701.html
Copyright © 2020-2023  润新知