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 }
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 }