Android使用者登入註冊介面開發及使用者資訊管理案例程式碼詳解
阿新 • • 發佈:2019-01-31
[java]
view plain
copy
print?
[java] view plain copy print?
[java] view plain copy print?
- package com.example.foolishfan.user_v10;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.SQLException;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.util.Log;
- public class UserDataManager { //使用者資料管理類
- //一些巨集定義和宣告
- private static final String TAG = "UserDataManager";
- private static final String DB_NAME = "user_data";
- private static final String TABLE_NAME = "users";
- public static final String ID = "_id"
- public static final String USER_NAME = "user_name";
- public static final String USER_PWD = "user_pwd";
- // public static final String SILENT = "silent";
- // public static final String VIBRATE = "vibrate";
- private static final int DB_VERSION = 2;
- private Context mContext = null
- //建立使用者book表
- private static final String DB_CREATE = "CREATE TABLE " + TABLE_NAME + " ("
- + ID + " integer primary key," + USER_NAME + " varchar,"
- + USER_PWD + " varchar" + ");";
- private SQLiteDatabase mSQLiteDatabase = null;
- private DataBaseManagementHelper mDatabaseHelper = null;
- //DataBaseManagementHelper繼承自SQLiteOpenHelper
- private static class DataBaseManagementHelper extends SQLiteOpenHelper {
- DataBaseManagementHelper(Context context) {
- super(context, DB_NAME, null, DB_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- Log.i(TAG,"db.getVersion()="+db.getVersion());
- db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");
- db.execSQL(DB_CREATE);
- Log.i(TAG, "db.execSQL(DB_CREATE)");
- Log.e(TAG, DB_CREATE);
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- Log.i(TAG, "DataBaseManagementHelper onUpgrade");
- onCreate(db);
- }
- }
- public UserDataManager(Context context) {
- mContext = context;
- Log.i(TAG, "UserDataManager construction!");
- }
- //開啟資料庫
- public void openDataBase() throws SQLException {
- mDatabaseHelper = new DataBaseManagementHelper(mContext);
- mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
- }
- //關閉資料庫
- public void closeDataBase() throws SQLException {
- mDatabaseHelper.close();
- }
- //新增新使用者,即註冊
- public long insertUserData(UserData userData) {
- String userName=userData.getUserName();
- String userPwd=userData.getUserPwd();
- ContentValues values = new ContentValues();
- values.put(USER_NAME, userName);
- values.put(USER_PWD, userPwd);
- return mSQLiteDatabase.insert(TABLE_NAME, ID, values);
- }
- //更新使用者資訊,如修改密碼
- public boolean updateUserData(UserData userData) {
- //int id = userData.getUserId();
- String userName = userData.getUserName();
- String userPwd = userData.getUserPwd();
- ContentValues values = new ContentValues();
- values.put(USER_NAME, userName);
- values.put(USER_PWD, userPwd);
- return mSQLiteDatabase.update(TABLE_NAME, values,null, null) > 0;
- //return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
- }
- //
- public Cursor fetchUserData(int id) throws SQLException {
- Cursor mCursor = mSQLiteDatabase.query(false, TABLE_NAME, null, ID
- + "=" + id, null, null, null, null, null);
- if (mCursor != null) {
- mCursor.moveToFirst();
- }
- return mCursor;
- }
- //
- public Cursor fetchAllUserDatas() {
- return mSQLiteDatabase.query(TABLE_NAME, null, null, null, null, null,
- null);
- }
- //根據id刪除使用者
- public boolean deleteUserData(int id) {
- return mSQLiteDatabase.delete(TABLE_NAME, ID + "=" + id, null) > 0;
- }
- //根據使用者名稱登出
- public boolean deleteUserDatabyname(String name) {
- return mSQLiteDatabase.delete(TABLE_NAME, USER_NAME + "=" + name, null) > 0;
- }
- //刪除所有使用者
- public boolean deleteAllUserDatas() {
- return mSQLiteDatabase.delete(TABLE_NAME, null, null) > 0;
- }
- //
- public String getStringByColumnName(String columnName, int id) {
- Cursor mCursor = fetchUserData(id);
- int columnIndex = mCursor.getColumnIndex(columnName);
- String columnValue = mCursor.getString(columnIndex);
- mCursor.close();
- return columnValue;
- }
- //
- public boolean updateUserDataById(String columnName, int id,
- String columnValue) {
- ContentValues values = new ContentValues();
- values.put(columnName, columnValue);
- return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
- }
- //根據使用者名稱找使用者,可以判斷註冊時使用者名稱是否已經存在
- public int findUserByName(String userName){
- Log.i(TAG,"findUserByName , userName="+userName);
- int result=0;
- Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName, null, null, null, null);
- if(mCursor!=null){
- result=mCursor.getCount();
- mCursor.close();
- Log.i(TAG,"findUserByName , result="+result);
- }
- return result;
- }
- //根據使用者名稱和密碼找使用者,用於登入
- public int findUserByNameAndPwd(String userName,String pwd){
- Log.i(TAG,"findUserByNameAndPwd");
- int result=0;
- Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName+" and "+USER_PWD+"="+pwd,
- null, null, null, null);
- if(mCursor!=null){
- result=mCursor.getCount();
- mCursor.close();
- Log.i(TAG,"findUserByNameAndPwd , result="+result);
- }
- return result;
- }
- }
package com.example.foolishfan.user_v10;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
public class UserDataManager { //使用者資料管理類
//一些巨集定義和宣告
private static final String TAG = "UserDataManager";
private static final String DB_NAME = "user_data";
private static final String TABLE_NAME = "users";
public static final String ID = "_id";
public static final String USER_NAME = "user_name";
public static final String USER_PWD = "user_pwd";
// public static final String SILENT = "silent";
// public static final String VIBRATE = "vibrate";
private static final int DB_VERSION = 2;
private Context mContext = null;
//建立使用者book表
private static final String DB_CREATE = "CREATE TABLE " + TABLE_NAME + " ("
+ ID + " integer primary key," + USER_NAME + " varchar,"
+ USER_PWD + " varchar" + ");";
private SQLiteDatabase mSQLiteDatabase = null;
private DataBaseManagementHelper mDatabaseHelper = null;
//DataBaseManagementHelper繼承自SQLiteOpenHelper
private static class DataBaseManagementHelper extends SQLiteOpenHelper {
DataBaseManagementHelper(Context context) {
super(context, DB_NAME, null, DB_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db) {
Log.i(TAG,"db.getVersion()="+db.getVersion());
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");
db.execSQL(DB_CREATE);
Log.i(TAG, "db.execSQL(DB_CREATE)");
Log.e(TAG, DB_CREATE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
Log.i(TAG, "DataBaseManagementHelper onUpgrade");
onCreate(db);
}
}
public UserDataManager(Context context) {
mContext = context;
Log.i(TAG, "UserDataManager construction!");
}
//開啟資料庫
public void openDataBase() throws SQLException {
mDatabaseHelper = new DataBaseManagementHelper(mContext);
mSQLiteDatabase = mDatabaseHelper.getWritableDatabase();
}
//關閉資料庫
public void closeDataBase() throws SQLException {
mDatabaseHelper.close();
}
//新增新使用者,即註冊
public long insertUserData(UserData userData) {
String userName=userData.getUserName();
String userPwd=userData.getUserPwd();
ContentValues values = new ContentValues();
values.put(USER_NAME, userName);
values.put(USER_PWD, userPwd);
return mSQLiteDatabase.insert(TABLE_NAME, ID, values);
}
//更新使用者資訊,如修改密碼
public boolean updateUserData(UserData userData) {
//int id = userData.getUserId();
String userName = userData.getUserName();
String userPwd = userData.getUserPwd();
ContentValues values = new ContentValues();
values.put(USER_NAME, userName);
values.put(USER_PWD, userPwd);
return mSQLiteDatabase.update(TABLE_NAME, values,null, null) > 0;
//return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
}
//
public Cursor fetchUserData(int id) throws SQLException {
Cursor mCursor = mSQLiteDatabase.query(false, TABLE_NAME, null, ID
+ "=" + id, null, null, null, null, null);
if (mCursor != null) {
mCursor.moveToFirst();
}
return mCursor;
}
//
public Cursor fetchAllUserDatas() {
return mSQLiteDatabase.query(TABLE_NAME, null, null, null, null, null,
null);
}
//根據id刪除使用者
public boolean deleteUserData(int id) {
return mSQLiteDatabase.delete(TABLE_NAME, ID + "=" + id, null) > 0;
}
//根據使用者名稱登出
public boolean deleteUserDatabyname(String name) {
return mSQLiteDatabase.delete(TABLE_NAME, USER_NAME + "=" + name, null) > 0;
}
//刪除所有使用者
public boolean deleteAllUserDatas() {
return mSQLiteDatabase.delete(TABLE_NAME, null, null) > 0;
}
//
public String getStringByColumnName(String columnName, int id) {
Cursor mCursor = fetchUserData(id);
int columnIndex = mCursor.getColumnIndex(columnName);
String columnValue = mCursor.getString(columnIndex);
mCursor.close();
return columnValue;
}
//
public boolean updateUserDataById(String columnName, int id,
String columnValue) {
ContentValues values = new ContentValues();
values.put(columnName, columnValue);
return mSQLiteDatabase.update(TABLE_NAME, values, ID + "=" + id, null) > 0;
}
//根據使用者名稱找使用者,可以判斷註冊時使用者名稱是否已經存在
public int findUserByName(String userName){
Log.i(TAG,"findUserByName , userName="+userName);
int result=0;
Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName, null, null, null, null);
if(mCursor!=null){
result=mCursor.getCount();
mCursor.close();
Log.i(TAG,"findUserByName , result="+result);
}
return result;
}
//根據使用者名稱和密碼找使用者,用於登入
public int findUserByNameAndPwd(String userName,String pwd){
Log.i(TAG,"findUserByNameAndPwd");
int result=0;
Cursor mCursor=mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"="+userName+" and "+USER_PWD+"="+pwd,
null, null, null, null);
if(mCursor!=null){
result=mCursor.getCount();
mCursor.close();
Log.i(TAG,"findUserByNameAndPwd , result="+result);
}
return result;
}
}
3:具體操作的實現程式碼,即各個activity
Login.java【使用者登入activity】[java] view plain copy print?
- package com.example.foolishfan.user_v10;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.SharedPreferences;
- import android.os.Bundle;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.CheckBox;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.TextView;
- import android.widget.Toast;
- public class Login extends Activity { //登入介面活動
- public int pwdresetFlag=0;
- private EditText mAccount; //使用者名稱編輯
- private EditText mPwd; //密碼編輯
- private Button mRegisterButton; //註冊按鈕
- private Button mLoginButton; //登入按鈕
- private Button mCancleButton; //登出按鈕
- private CheckBox mRememberCheck;
- private SharedPreferences login_sp;
- private String userNameValue,passwordValue;
- private View loginView; //登入
- private View loginSuccessView;
- private TextView loginSuccessShow;
- private TextView mChangepwdText;
- private UserDataManager mUserDataManager; //使用者資料管理類
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.login);
- //通過id找到相應的控制元件
- mAccount = (EditText) findViewById(R.id.login_edit_account);
- mPwd = (EditText) findViewById(R.id.login_edit_pwd);
- mRegisterButton = (Button) findViewById(R.id.login_btn_register);
- mLoginButton = (Button) findViewById(R.id.login_btn_login);
- mCancleButton = (Button) findViewById(R.id.login_btn_cancle);
- loginView=findViewById(R.id.login_view);
- loginSuccessView=findViewById(R.id.login_success_view);
- loginSuccessShow=(TextView) findViewById(R.id.login_success_show);
- mChangepwdText = (TextView) findViewById(R.id.login_text_change_pwd);
- mRememberCheck = (CheckBox) findViewById(R.id.Login_Remember);
- login_sp = getSharedPreferences("userInfo", 0);
- String name=login_sp.getString("USER_NAME", "");
- String pwd =login_sp.getString("PASSWORD", "");
- boolean choseRemember =login_sp.getBoolean("mRememberCheck", false);
- boolean choseAutoLogin =login_sp.getBoolean("mAutologinCheck", false);
- //如果上次選了記住密碼,那進入登入頁面也自動勾選記住密碼,並填上使用者名稱和密碼
- if(choseRemember){
- mAccount.setText(name);
- mPwd.setText(pwd);
- mRememberCheck.setChecked(true);
- }
- mRegisterButton.setOnClickListener(mListener); //採用OnClickListener方法設定不同按鈕按下之後的監聽事件
- mLoginButton.setOnClickListener(mListener);
- mCancleButton.setOnClickListener(mListener);
- mChangepwdText.setOnClickListener(mListener);
- ImageView image = (ImageView) findViewById(R.id.logo); //使用ImageView顯示logo
- image.setImageResource(R.drawable.logo);
- if (mUserDataManager == null) {
- mUserDataManager = new UserDataManager(this);
- mUserDataManager.openDataBase(); //建立本地資料庫
- }
- }
- OnClickListener mListener = new OnClickListener() { //不同按鈕按下的監聽事件選擇
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.login_btn_register: //登入介面的註冊按鈕
- Intent intent_Login_to_Register = new Intent(Login.this,Register.class) ; //切換Login Activity至User Activity
- startActivity(intent_Login_to_Register);
- finish();
- break;
- case R.id.login_btn_login: //登入介面的登入按鈕
- login();
- break;
- case R.id.login_btn_cancle: //登入介面的登出按鈕
- cancel();
- break;
- case R.id.login_text_change_pwd: //登入介面的登出按鈕
- Intent intent_Login_to_reset = new Intent(Login.this,Resetpwd.class) ; //切換Login Activity至User Activity
- startActivity(intent_Login_to_reset);
- finish();
- break;
- }
- }
- };
- public void login() { //登入按鈕監聽事件
- if (isUserNameAndPwdValid()) {
- String userName = mAccount.getText().toString().trim(); //獲取當前輸入的使用者名稱和密碼資訊
- String userPwd = mPwd.getText().toString().trim();
- SharedPreferences.Editor editor =login_sp.edit();
- int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);
- if(result==1){ //返回1說明使用者名稱和密碼均正確
- //儲存使用者名稱和密碼
- editor.putString("USER_NAME", userName);
- editor.putString("PASSWORD", userPwd);
- //是否記住密碼
- if(mRememberCheck.isChecked()){
- editor.putBoolean("mRememberCheck", true);
- }else{
- editor.putBoolean("mRememberCheck", false);
- }
- editor.commit();
- Intent intent = new Intent(Login.this,User.class) ; //切換Login Activity至User Activity
- startActivity(intent);
- finish();
- Toast.makeText(this, getString(R.string.login_success),Toast.LENGTH_SHORT).show();//登入成功提示
- }else if(result==0){
- Toast.makeText(this, getString(R.string.login_fail),Toast.LENGTH_SHORT).show(); //登入失敗提示
- }
- }
- }
- public void cancel() { //登出
- if (isUserNameAndPwdValid()) {
- String userName = mAccount.getText().toString().trim(); //獲取當前輸入的使用者名稱和密碼資訊
- String userPwd = mPwd.getText().toString().trim();
- int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);
- if(result==1){ //返回1說明使用者名稱和密碼均正確
- Toast.makeText(this, getString(R.string.cancel_success),Toast.LENGTH_SHORT).show();<span style="font-family: Arial;">//登出成功提示</span>
- mPwd.setText("");
- mAccount.setText("");
- mUserDataManager.deleteUserDatabyname(userName);
- }else if(result==0){
- Toast.makeText(this, getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show(); //登出失敗提示
- }
- }
- }
- public boolean isUserNameAndPwdValid() {
- if (mAccount.getText().toString().trim().equals("")) {
- Toast.makeText(this, getString(R.string.account_empty),
- Toast.LENGTH_SHORT).show();
- return false;
- } else if (mPwd.getText().toString().trim().equals("")) {
- Toast.makeText(this, getString(R.string.pwd_empty),
- Toast.LENGTH_SHORT).show();
- return false;
- }
- return true;
- }
- @Override
- protected void onResume() {
- if (mUserDataManager == null) {
- mUserDataManager = new UserDataManager(this);
- mUserDataManager.openDataBase();
- }
- super.onResume();
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
- @Override
- protected void onPause() {
- if (mUserDataManager != null) {
- mUserDataManager.closeDataBase();
- mUserDataManager = null;
- }
- super.onPause();
- }
- }
package com.example.foolishfan.user_v10;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
public class Login extends Activity { //登入介面活動
public int pwdresetFlag=0;
private EditText mAccount; //使用者名稱編輯
private EditText mPwd; //密碼編輯
private Button mRegisterButton; //註冊按鈕
private Button mLoginButton; //登入按鈕
private Button mCancleButton; //登出按鈕
private CheckBox mRememberCheck;
private SharedPreferences login_sp;
private String userNameValue,passwordValue;
private View loginView; //登入
private View loginSuccessView;
private TextView loginSuccessShow;
private TextView mChangepwdText;
private UserDataManager mUserDataManager; //使用者資料管理類
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
//通過id找到相應的控制元件
mAccount = (EditText) findViewById(R.id.login_edit_account);
mPwd = (EditText) findViewById(R.id.login_edit_pwd);
mRegisterButton = (Button) findViewById(R.id.login_btn_register);
mLoginButton = (Button) findViewById(R.id.login_btn_login);
mCancleButton = (Button) findViewById(R.id.login_btn_cancle);
loginView=findViewById(R.id.login_view);
loginSuccessView=findViewById(R.id.login_success_view);
loginSuccessShow=(TextView) findViewById(R.id.login_success_show);
mChangepwdText = (TextView) findViewById(R.id.login_text_change_pwd);
mRememberCheck = (CheckBox) findViewById(R.id.Login_Remember);
login_sp = getSharedPreferences("userInfo", 0);
String name=login_sp.getString("USER_NAME", "");
String pwd =login_sp.getString("PASSWORD", "");
boolean choseRemember =login_sp.getBoolean("mRememberCheck", false);
boolean choseAutoLogin =login_sp.getBoolean("mAutologinCheck", false);
//如果上次選了記住密碼,那進入登入頁面也自動勾選記住密碼,並填上使用者名稱和密碼
if(choseRemember){
mAccount.setText(name);
mPwd.setText(pwd);
mRememberCheck.setChecked(true);
}
mRegisterButton.setOnClickListener(mListener); //採用OnClickListener方法設定不同按鈕按下之後的監聽事件
mLoginButton.setOnClickListener(mListener);
mCancleButton.setOnClickListener(mListener);
mChangepwdText.setOnClickListener(mListener);
ImageView image = (ImageView) findViewById(R.id.logo); //使用ImageView顯示logo
image.setImageResource(R.drawable.logo);
if (mUserDataManager == null) {
mUserDataManager = new UserDataManager(this);
mUserDataManager.openDataBase(); //建立本地資料庫
}
}
OnClickListener mListener = new OnClickListener() { //不同按鈕按下的監聽事件選擇
public void onClick(View v) {
switch (v.getId()) {
case R.id.login_btn_register: //登入介面的註冊按鈕
Intent intent_Login_to_Register = new Intent(Login.this,Register.class) ; //切換Login Activity至User Activity
startActivity(intent_Login_to_Register);
finish();
break;
case R.id.login_btn_login: //登入介面的登入按鈕
login();
break;
case R.id.login_btn_cancle: //登入介面的登出按鈕
cancel();
break;
case R.id.login_text_change_pwd: //登入介面的登出按鈕
Intent intent_Login_to_reset = new Intent(Login.this,Resetpwd.class) ; //切換Login Activity至User Activity
startActivity(intent_Login_to_reset);
finish();
break;
}
}
};
public void login() { //登入按鈕監聽事件
if (isUserNameAndPwdValid()) {
String userName = mAccount.getText().toString().trim(); //獲取當前輸入的使用者名稱和密碼資訊
String userPwd = mPwd.getText().toString().trim();
SharedPreferences.Editor editor =login_sp.edit();
int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);
if(result==1){ //返回1說明使用者名稱和密碼均正確
//儲存使用者名稱和密碼
editor.putString("USER_NAME", userName);
editor.putString("PASSWORD", userPwd);
//是否記住密碼
if(mRememberCheck.isChecked()){
editor.putBoolean("mRememberCheck", true);
}else{
editor.putBoolean("mRememberCheck", false);
}
editor.commit();
Intent intent = new Intent(Login.this,User.class) ; //切換Login Activity至User Activity
startActivity(intent);
finish();
Toast.makeText(this, getString(R.string.login_success),Toast.LENGTH_SHORT).show();//登入成功提示
}else if(result==0){
Toast.makeText(this, getString(R.string.login_fail),Toast.LENGTH_SHORT).show(); //登入失敗提示
}
}
}
public void cancel() { //登出
if (isUserNameAndPwdValid()) {
String userName = mAccount.getText().toString().trim(); //獲取當前輸入的使用者名稱和密碼資訊
String userPwd = mPwd.getText().toString().trim();
int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd);
if(result==1){ //返回1說明使用者名稱和密碼均正確
Toast.makeText(this, getString(R.string.cancel_success),Toast.LENGTH_SHORT).show();<span style="font-family: Arial;">//登出成功提示</span>
mPwd.setText("");
mAccount.setText("");
mUserDataManager.deleteUserDatabyname(userName);
}else if(result==0){
Toast.makeText(this, getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show(); //登出失敗提示
}
}
}
public boolean isUserNameAndPwdValid() {
if (mAccount.getText().toString().trim().equals("")) {
Toast.makeText(this, getString(R.string.account_empty),
Toast.LENGTH_SHORT).show();
return false;
} else if (mPwd.getText().toString().trim().equals("")) {
Toast.makeText(this, getString(R.string.pwd_empty),
Toast.LENGTH_SHORT).show();
return false;
}
return true;
}
@Override
protected void onResume() {
if (mUserDataManager == null) {
mUserDataManager = new UserDataManager(this);
mUserDataManager.openDataBase();
}
super.onResume();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
@Override
protected void onPause() {
if (mUserDataManager != null) {
mUserDataManager.closeDataBase();
mUserDataManager = null;
}
super.onPause();
}
}
Register.java【使用者註冊activity】[java] view plain copy print?
- package com.example.foolishfan.user_v10;
- import android.app.Activity;
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.EditText;
- import android.widget.Toast;
- public class Register extends AppCompatActivity {
- private EditText mAccount; //使用者名稱編輯
- private EditText mPwd; //密碼編輯
- private EditText mPwdCheck; //密碼編輯
- private Button mSureButton; //確定按鈕
- private Button mCancelButton; //取消按鈕
- private UserDataManager mUserDataManager; //使用者資料管理類
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.register);
- mAccount = (EditText) findViewById(R.id.resetpwd_edit_name);
- mPwd = (EditText) findViewById(R.id.resetpwd_edit_pwd_old);
- mPwdCheck = (EditText) findViewById(R.id.resetpwd_edit_pwd_new);
- mSureButton = (Button) findViewById(R.id.register_btn_sure);
- mCancelButton = (Button) findViewById(R.id.register_btn_cancel);
- mSureButton.setOnClickListener(m_register_Listener); //註冊介面兩個按鈕的監聽事件
- mCancelButton.setOnClickListener(m_register_Listener);
- if (mUserDataManager == null) {
- mUserDataManager = new UserDataManager(this);
- mUserDataManager.openDataBase(); //建立本地資料庫
- }
- }
- View.OnClickListener m_register_Listener = new View.OnClickListener() { //不同按鈕按下的監聽事件選擇
- public void onClick(View v) {
- switch (v.getId()) {
- case R.id.register_btn_sure: //確認按鈕的監聽事件
- register_check();
- break;
- case R.id.register_btn_cancel: //取消按鈕的監聽事件,由註冊介面返回登入介面
- Intent intent_Register_to_Login = new Intent(Register.this,Login.class) ; //切換User Activity至Login Activity
- startActivity(intent_Register_to_Login);
- finish();
- break;
- }
- }
- };
- public void register_check() { //確認按鈕的監聽事件
- if (isUserNameAndPwdValid()) {
- String userName = mAccount.getText().toString().trim();
- String userPwd = mPwd.getText().toString().trim();
- String userPwdCheck = mPwdCheck.getText().toString().trim();
- //檢查使用者是否存在
- int count=mUserDataManager.findUserByName(userName);
- //使用者已經存在時返回,給出提示文字
- if(count>0){
- Toast.makeText(this, getString(R.string.name_already_exist, userName),Toast.LENGTH_SHORT).show();
- return ;
- }
- if(userPwd.equals(userPwdCheck)==false){ //兩次密碼輸入不一樣
- Toast.makeText(this, getString(R.string.pwd_not_the_same),Toast.LENGTH_SHORT).show();
- return ;
- } else {
- UserData mUser = new UserData(userName, userPwd);
- mUserDataManager.openDataBase();
- long flag = mUserDataManager.insertUserData(mUser); //新建使用者資訊
- if (flag == -1) {
- Toast.makeText(this, getString(R.string.register_fail),Toast.LENGTH_SHORT).show();
- }else{
- Toast.makeText(this, getString(R.string.register_success),Toast.LENGTH_SHORT).show();
- Intent intent_Register_to_Login = new Intent(Register.this,Login.class) ; //切換User Activity至Login Activity
- startActivity(intent_Register_to_Login);
- finish();
- }
- }
- }
- }
- public boolean isUserNameAndPwdValid() {
- if (mAccount.getText().toString().trim().equals("")) {
- Toast.makeText(this, getString(R.string.account_empty),
- Toast.LENGTH_SHORT).show();
- return false;
- } else if (mPwd.getText().toString().trim().equals("")) {
- Toast.makeText(this, getString(R.string.pwd_empty),
- Toast.LENGTH_SHORT).show();
- return false;
- }else if(mPwdCheck.getText().toString().trim().equals("")) {
- Toast.makeText(this, getString(R.string.pwd_check_empty),
- Toast.LENGTH_SHORT).show();
- return false;
- }
- return true;
- }
- }
package com.example.foolishfan.user_v10;
import android.app.Activity;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class Register extends AppCompatActivity {
private EditText mAccount; //使用者名稱編輯
private EditText mPwd; //密碼編輯
private EditText mPwdCheck; //密碼編輯
private Button mSureButton; //確定按鈕
private Button mCancelButton; //取消按鈕
private UserDataManager mUserDataManager; //使用者資料管理類
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.register);
mAccount = (EditText) findViewById(R.id.resetpwd_edit_name);
m