android自定义登陆Dialog

Preview

Question

我们需要自定义一个登陆界面,当我们密码输入成功的时候进入下一个页面,密码不匹配的时候将输入的内容清空。

Solution

001 package com . study;
002
003 import java.lang.reflect.Field;
004
005 import android.app.Activity;
006 import android.app.AlertDialog;
007 import android.app.ProgressDialog;
008 import android.content.DialogInterface;
009 import android.content.Intent;
010 import android.database.Cursor;
011 import android.database.sqlite.SQLiteDatabase;
012 import android.os.Bundle;
013 import android.os.Handler;
014 import android.view.LayoutInflater;
015 import android.view.View;
016 import android.widget.EditText;
017
018 public class Login extends Activity {
019     /** Called when the activity is first created. */
020
021     private DBHelpter dbHelpter;
022     private SQLiteDatabase db;
023     private String name;
024     private String password;
025     private EditText editTextName;
026     private EditText editTextPassword;
027     private Cursor cursor;
028     private ProgressDialog progressDialog;
029
030     @Override
031     public void onCreate( Bundle savedInstanceState) {
032         super . onCreate( savedInstanceState);
033         setContentView( R . layout . main);
034         Handler handler = new Handler();
035         handler . post( runableCreateDialog);
036     }
037
038     Runnable runableCreateDialog = new Runnable() {
039
040         @Override
041         public void run() {
042             // TODO Auto-generated method stub
043             // 因为是动态加载xml布局文件,要得到xml里面的控件必须这样做
044             LayoutInflater factory = LayoutInflater . from( Login . this);
045             final View view = factory . inflate( R . layout . login , null);
046
047             // 生成一个自定义的AlertDialog
048             new AlertDialog . Builder( Login . this ). setTitle(
049                     getResources (). getString( R . string . dialogTitle )). setView(
050                     view ). setNegativeButton(
051                     getResources (). getString( R . string . register ),
052                     new DialogInterface . OnClickListener() {
053
054                         @Override
055                         public void onClick( DialogInterface dialog , int which) {
056                             // TODO Auto-generated method stub
057                             try {
058                                 Field field = dialog . getClass (). getSuperclass()
059                                         . getDeclaredField( "mShowing");
060                                 field . setAccessible( true);
061                                 field . set( dialog , true);
062                                 dialog . dismiss();
063
064                             } catch ( Exception e) {
065
066                             }
067                             Intent intent = new Intent( Login . this ,
068                                     Register . class);
069                             startActivity( intent);
070
071                         }
072                     }). setPositiveButton(
073                     getResources (). getString( R . string . confirm ),
074                     new DialogInterface . OnClickListener() {
075
076                         @Override
077                         public void onClick( DialogInterface dialog , int which) {
078                             // TODO Auto-generated method stub
079                             try {
080                                 Field field = dialog . getClass (). getSuperclass()
081                                         . getDeclaredField( "mShowing");
082                                 field . setAccessible( true);
083
084                                 dbHelpter = new DBHelpter( Login . this);
085                                 db = dbHelpter . getReadableDatabase();
086                                 editTextName = ( EditText) view
087                                         . findViewById( R . id . editTextUserName);
088                                 editTextPassword = ( EditText) view
089                                         . findViewById( R . id . editTextPassword);
090                                 name = editTextName . getText (). toString();
091                                 password = editTextPassword . getText()
092                                         . toString();
093
094                                 try {
095                                     cursor = db . rawQuery(
096                                             "select * from tbluser where "
097                                                     + UserColumns . userName
098                                                     + " = ? and "
099                                                     + UserColumns . userPassword
100                                                     + " = ?" , new String [] {
101                                                     name , password });
102                                     if ( cursor . getCount() > 0) {
103                                         progressDialog = ProgressDialog
104                                                 . show(
105                                                         Login . this ,
106                                                         getResources()
107                                                                 . getString(
108                                                                         R . string . progressTitle ),
109                                                         getResources()
110                                                                 . getString(
111                                                                         R . string . loginNow ),
112                                                         true);
113
114                                         new Thread() {
115                                             @Override
116                                             public void run() {
117                                                 // TODO Auto-generated method
118                                                 // stub
119                                                 try {
120                                                     sleep( 3000);
121                                                 } catch ( Exception ex) {
122                                                     ex . printStackTrace();
123                                                 } finally {
124                                                     if ( progressDialog != null)
125                                                         progressDialog
126                                                                 . dismiss();
127                                                 }
128                                             }
129
130                                         }. start();
131                                         System . out . println( "登陆成功");
132                                         field . set( dialog , true);
133                                         dialog . dismiss();
134                                         Intent intent = new Intent( Login . this ,
135                                                 Information . class);
136                                         startActivity( intent);
137                                     } else {
138                                         editTextName . setText( "");
139                                         editTextPassword . setText( "");
140                                         field . set( dialog , false);
141                                         dialog . dismiss();
142                                         System . out . println( "登陆失败");
143                                     }
144                                 } finally {
145                                     try {
146                                         if ( cursor != null) {
147                                             if (! cursor . isClosed())
148                                                 cursor . close();
149                                         }
150                                     } finally {
151                                         try {
152                                             if ( db != null) {
153                                                 db . close();
154                                             }
155                                         } finally {
156                                             if ( dbHelpter != null) {
157                                                 dbHelpter . close();
158                                             }
159                                         }
160                                     }
161                                 }
162
163                             } catch ( Exception e) {
164
165                             }
166                         }
167                     }). show();
168         }
169     };
170
171     @Override
172     protected void onStop() {
173         // TODO Auto-generated method stub
174         this . finish();
175         super . onStop();
176     }
177 }

转载于:https://www.cnblogs.com/xuhaiqing/archive/2011/09/30/2196576.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值