Android 养成记-1--1.1 登录注册

首先,上图看效果:

接下来是看如何实现。

1,loginActivity

/**
 * 登录界面
 */

public class LoginActivity extends Activity
        implements View.OnClickListener, CompoundButton.OnCheckedChangeListener {
    //布局内的控件
    private EditText et_name;
    private EditText et_password;
    private Button mLoginBtn;
    private Button mRegisterBtn;
    private CheckBox checkBox_password;
    private CheckBox checkBox_login;
    private ImageView iv_see_password;
    static String currentLoginCount = "";
    static String currentpassword = "";
    
    private LoadingDialog mLoadingDialog; //显示正在加载的对话框
    private UserDataManager mUserDataManager;         //用户数据管理类
    
    
   /* private static final String DATABASE_NAME = "Mydb";
    private static final String TABLE_NAME = "MyLoginDB";

    private SQLiteDatabase sqlDB;
    public static final String ID = "_id";
    public static final String USERID = "customName";
    public static final String PASSWORD = "password";*/
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);
        initViews();
        setupEvents();
        initData();
        
        
        if (mUserDataManager == null) {
            mUserDataManager = new UserDataManager(this);
            mUserDataManager.openDataBase();                              //建立本地数据库
        }
       // sqlDB = openOrCreateDatabase(DATABASE_NAME,SQLiteDatabase.CREATE_IF_NECESSARY,null);
        /*
         * 初始化数据库
         */
       // sqlDB.execSQL("drop table if exists "+TABLE_NAME );//删除数据库中的表
        //sqlDB.execSQL("DELETE FROM " + TABLE_NAME);//删除表中所有数据但保留表
        
        
        // Toast.makeText(getApplicationContext(),"数据库创建成功",Toast.LENGTH_SHORT).show();
         /* try {
             sqlDB.execSQL("create table " + TABLE_NAME + " ( "+
                    ID + " integer primary key,"+
                    USERID + " varchar,"+
                    PASSWORD+ " varchar "+
                    ")");
          }catch(Exception e){
             //Toast.makeText(getApplicationContext(),"表格已经存在",Toast.LENGTH_SHORT).show();
          }*/
    }

    private void initData() {


        //判断用户第一次登陆
        if (firstLogin()) {
            checkBox_password.setChecked(false);//取消记住密码的复选框
            checkBox_login.setChecked(false);//取消自动登录的复选框
        }
        //判断是否记住密码
        if (remenberPassword()) {
            checkBox_password.setChecked(true);//勾选记住密码
            setTextNameAndPassword();//把密码和账号输入到输入框中
        } else {
            setTextName();//把用户账号放到输入账号的输入框中
        }

        //判断是否自动登录
        if (autoLogin()) {
            checkBox_login.setChecked(true);
            login();//去登录就可以

        }
    }

    /**
     * 把本地保存的数据设置数据到输入框中
     */
    public void setTextNameAndPassword() {
        et_name.setText("" + getLocalName());
        et_password.setText("" + getLocalPassword());
    }

    /**
     * 设置数据到输入框中
     */
    public void setTextName() {
        et_name.setText("" + getLocalName());
    }


    /**
     * 获得保存在本地的用户名
     */
    public String getLocalName() {
        //获取SharedPreferences对象,使用自定义类的方法来获取对象
        SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");
        String name = helper.getString("name");
        return name;
    }


    /**
     * 获得保存在本地的密码
     */
    public String getLocalPassword() {
        //获取SharedPreferences对象,使用自定义类的方法来获取对象
        SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");
        String password = helper.getString("password");
        return Base64Utils.decryptBASE64(password);   //解码一下
//       return password;   //解码一下

    }

    /**
     * 判断是否自动登录
     */
    private boolean autoLogin() {
        //获取SharedPreferences对象,使用自定义类的方法来获取对象
        SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");
        boolean autoLogin = helper.getBoolean("autoLogin", false);
        return autoLogin;
    }

    /**
     * 判断是否记住密码
     */
    private boolean remenberPassword() {
        //获取SharedPreferences对象,使用自定义类的方法来获取对象
        SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");
        boolean remenberPassword = helper.getBoolean("remenberPassword", false);
        return remenberPassword;
    }


    private void initViews() {
        mLoginBtn = (Button) findViewById(R.id.btn_login);
        mRegisterBtn = (Button) findViewById(R.id.btn_register);
        et_name = (EditText) findViewById(R.id.et_account);
        et_password = (EditText) findViewById(R.id.et_password);
        checkBox_password = (CheckBox) findViewById(R.id.checkBox_password);
        checkBox_login = (CheckBox) findViewById(R.id.checkBox_login);
        iv_see_password = (ImageView) findViewById(R.id.iv_see_password);
    }

    private void setupEvents() {
        mLoginBtn.setOnClickListener(this);
        mRegisterBtn.setOnClickListener(this);
        checkBox_password.setOnCheckedChangeListener(this);
        checkBox_login.setOnCheckedChangeListener(this);
        iv_see_password.setOnClickListener(this);

    }

    /**
     * 判断是否是第一次登陆
     */
    private boolean firstLogin() {
        //获取SharedPreferences对象,使用自定义类的方法来获取对象
        SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");
        boolean first = helper.getBoolean("first", true);
        if (first) {
            //创建一个ContentVa对象(自定义的)设置不是第一次登录,,并创建记住密码和自动登录是默认不选,创建账号和密码为空
            helper.putValues(new SharedPreferencesUtils.ContentValue("first", false),
                    new SharedPreferencesUtils.ContentValue("remenberPassword", false),
                    new SharedPreferencesUtils.ContentValue("autoLogin", false),
                    new SharedPreferencesUtils.ContentValue("name", ""),
                    new SharedPreferencesUtils.ContentValue("password", ""));
            return true;
        }
        return false;
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.btn_login:
                loadUserName();    //无论如何保存一下用户名
                login(); //登陆
                break;
            case R.id.iv_see_password:
                setPasswordVisibility();    //改变图片并设置输入框的文本可见或不可见
                break;
            case R.id.btn_register:
               startActivity(new Intent(this,RegisterActivity.class));
               finish();
                break;  

        }
    }


    private void login() {

        //先做一些基本的判断,比如输入的用户命为空,密码为空,网络不可用多大情况,都不需要去链接服务器了,而是直接返回提示错误
      if (getAccount().isEmpty()){
          showToast("你输入的账号为空!");
          return;
      }

        if (getPassword().isEmpty()){
            showToast("你输入的密码为空!");
            return;
        }
        //showToast(getAccount());
/*        if (!user(getAccount())){
           showToast("账户不存在");
            return;
        }*/
        //登录一般都是请求服务器来判断密码是否正确,要请求网络,要子线程
        showLoading();//显示加载框
        Thread loginRunnable = new Thread() {

            @Override
            public void run() {
                super.run();
                setLoginBtnClickable(false);//点击登录后,设置登录按钮不可点击状态
                
              if (!isUserNameAndPwdValid()){
                
                   return ;
              }
                currentLoginCount = getAccount();
                int result=mUserDataManager.findUserByNameAndPwd(getAccount(), getPassword());
                if(result==1){                                             //返回1说明用户名和密码均正确
                   startActivity(new Intent(LoginActivity.this, MainActivity.class));
                    finish();
                    showToast(getString(R.string.login_success));//登录成功提示
                }else if(result==0){
                   showToast(getString(R.string.login_fail)); //登录失败提示
                }

                setLoginBtnClickable(true);  //这里解放登录按钮,设置为可以点击
                hideLoading();//隐藏加载框
            }
        };
        loginRunnable.start();


    }
    
 private boolean isUserNameAndPwdValid() {
   
       //showToast(userName.getText().toString().trim());
      if (getAccount().equals("")) {
         showToast(getString(R.string.account_empty));
            return false;
        } else if (getPassword().equals("")) {
           showToast(getString(R.string.pwd_empty));

            return false;
        }
        return true;
   }
    /*
     * 查询数据库看账号是否已经注册过了
     */
   /* private boolean user(String username) {
      Cursor cur = sqlDB.query(TABLE_NAME, null, USERID+"=?",
            new String[] { username }, null, null, null);
      while (cur.moveToNext()) {
         String user = cur.getString(1);
         Log.v("db_query", user);
         if (user.equals(username)) {
            return true;
         } else
            return false;
      }
      return false;
   }*/

    /**
     * 保存用户账号
     */
    public void loadUserName() {
        if (!getAccount().equals("") || !getAccount().equals("请输入登录账号")) {
            SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");
            helper.putValues(new SharedPreferencesUtils.ContentValue("name", getAccount()));
        }

    }

    /**
     * 设置密码可见和不可见的相互转换
     */
    private void setPasswordVisibility() {
        if (iv_see_password.isSelected()) {
            iv_see_password.setSelected(false);
            //密码不可见
            et_password.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_VARIATION_PASSWORD);

        } else {
            iv_see_password.setSelected(true);
            //密码可见
            et_password.setInputType(InputType.TYPE_TEXT_VARIATION_VISIBLE_PASSWORD);
        }

    }

    /**
     * 获取账号
     */
    public String getAccount() {
        return et_name.getText().toString().trim();//去掉空格
    }

    /**
     * 获取密码
     */
    public String getPassword() {
        return et_password.getText().toString().trim();//去掉空格
    }


    /**
     * 保存用户选择“记住密码”和“自动登陆”的状态
     */
    private void loadCheckBoxState() {
        loadCheckBoxState(checkBox_password, checkBox_login);
    }

    /**
     * 保存按钮的状态值
     */
    public void loadCheckBoxState(CheckBox checkBox_password, CheckBox checkBox_login) {

        //获取SharedPreferences对象,使用自定义类的方法来获取对象
        SharedPreferencesUtils helper = new SharedPreferencesUtils(this, "setting");

        //如果设置自动登录
        if (checkBox_login.isChecked()) {
            //创建记住密码和自动登录是都选择,保存密码数据
            helper.putValues(
                    new SharedPreferencesUtils.ContentValue("remenberPassword", true),
                    new SharedPreferencesUtils.ContentValue("autoLogin", true),
                    new SharedPreferencesUtils.ContentValue("password", Base64Utils.encryptBASE64(getPassword())));

        } else if (!checkBox_password.isChecked()) { //如果没有保存密码,那么自动登录也是不选的
            //创建记住密码和自动登录是默认不选,密码为空
            helper.putValues(
                    new SharedPreferencesUtils.ContentValue("remenberPassword", false),
                    new SharedPreferencesUtils.ContentValue("autoLogin", false),
                    new SharedPreferencesUtils.ContentValue("password", ""));
        } else if (checkBox_password.isChecked()) {   //如果保存密码,没有自动登录
            //创建记住密码为选中和自动登录是默认不选,保存密码数据
            helper.putValues(
                    new SharedPreferencesUtils.ContentValue("remenberPassword", true),
                    new SharedPreferencesUtils.ContentValue("autoLogin", false),
                    new SharedPreferencesUtils.ContentValue("password", Base64Utils.encryptBASE64(getPassword())));
        }
    }

    /**
     * 是否可以点击登录按钮
     *
     * @param clickable
     */
    public void setLoginBtnClickable(boolean clickable) {
        mLoginBtn.setClickable(clickable);
    }


    /**
     * 显示加载的进度款
     */
    public void showLoading() {
        if (mLoadingDialog == null) {
            mLoadingDialog = new LoadingDialog(this, getString(R.string.loading), false);
        }
        mLoadingDialog.show();
    }


    /**
     * 隐藏加载的进度框
     */
    public void hideLoading() {
        if (mLoadingDialog != null) {
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    mLoadingDialog.hide();
                }
            });

        }
    }


    /**
     * CheckBox点击时的回调方法 ,不管是勾选还是取消勾选都会得到回调
     *
     * @param buttonView 按钮对象
     * @param isChecked  按钮的状态
     */
    @Override
   public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        if (buttonView == checkBox_password) {  //记住密码选框发生改变时
            if (!isChecked) {   //如果取消“记住密码”,那么同样取消自动登陆
                checkBox_login.setChecked(false);
            }
        } else if (buttonView == checkBox_login) {   //自动登陆选框发生改变时
            if (isChecked) {   //如果选择“自动登录”,那么同样选中“记住密码”
                checkBox_password.setChecked(true);
            }
        }
    }


    /**
     * 监听回退键
     */
    @Override
    public void onBackPressed() {
        if (mLoadingDialog != null) {
            if (mLoadingDialog.isShowing()) {
                mLoadingDialog.cancel();
            } else {
                finish();
            }
        } else {
            finish();
        }

    }

    /**
     * 页面销毁前回调的方法
     */
    @Override
   protected void onDestroy() {
        if (mLoadingDialog != null) {
            mLoadingDialog.cancel();
            mLoadingDialog = null;
        }
        super.onDestroy();
    }


    public void showToast(final String msg) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(LoginActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    }

}

2, registerActivity的实现:

/*
*注册界面
*/

public class RegisterActivity extends Activity {

    EditText userName;
    EditText userPwd;
    EditText repeat;
    Button register;
    Button login;


    
    
    private UserDataManager mUserDataManager;         //用户数据管理类
    /**
    * 正则匹配:
    * [a-zA-Z]:字母开头
    * \\w :可包含大小写字母,数字,下划线,@
    * {5,17} 5到17位,加上开头字母  字符串长度6到18
    */
    private String userIdFromat = "[a-zA-Z](@?+\\w){4,16}+"; //加入正则匹配

   /**
   * 正则匹配
   * \\w{6,18}匹配所有字母、数字、下划线 字符串长度6到18(不含空格)
   */
    private String userPwdFormat = "\\w{6,18}+";
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        userName = (EditText)findViewById(R.id.editText3);
        userPwd = (EditText)findViewById(R.id.editText4);
        repeat = (EditText)findViewById(R.id.editText5);
        register = (Button)findViewById(R.id.button3);
       login = (Button)findViewById(R.id.button4);
       if (mUserDataManager == null) {
           mUserDataManager = new UserDataManager(this);
           mUserDataManager.openDataBase();                              //建立本地数据库
       }
        
       register.setOnClickListener(new Button.OnClickListener() {
           @Override
           public void onClick(View v) {
              
              
              if (!isUserNameAndPwdValid()){
                
                   return ;
              }
              
        
              
              //检查用户是否存在
               int count=mUserDataManager.findUserByName(userName.getText().toString());
               
             //用户已经存在时返回,给出提示文字
               if(count>0){
                  showToast(getString(R.string.name_already_exist));
                   
                   return ;
               }
               
            if (!userName.getText().toString().matches(userPwdFormat)){
                       
                 showToast(getString(R.string.wrong_usename_format));
                 return ;
              }
            
            if (!userPwd.getText().toString().matches(userPwdFormat)){
               
               showToast(getString(R.string.wrong_pwd_format));
               return ;
            }
               
               if(userPwd.getText().toString().equals(repeat.getText().toString())==false){     //两次密码输入不一样
                  showToast(getString(R.string.pwd_not_the_same));
                  
                   return ;
               } else {
                   UserData mUser = new UserData(userName.getText().toString(), userPwd.getText().toString());
                   mUserDataManager.openDataBase();
                   long flag = mUserDataManager.insertUserData(mUser); //新建用户信息
                   if (flag == -1) {
                      showToast(getString(R.string.register_fail));
                      
                   }else{
                      showToast(getString(R.string.register_success));
                   
                       Intent intent_Register_to_Login = new Intent(getApplicationContext(),LoginActivity.class) ;    //切换User Activity至Login Activity
                       startActivity(intent_Register_to_Login);
                       finish();
                   }
               }
           }
                  /*boolean isNameExist =user(userName.getText().toString());
               if(!isNameExist && !userName.getText().toString().equals("") && !userPwd.getText().toString().equals("") && !repeat.getText().toString().equals("")) {
                   
                   if (userName.getText().toString().matches(userIdFromat))
                   {
                       if(repeat.getText().toString().equals(userPwd.getText().toString())){
                          Log.v("register", userPwd.getText().toString().matches(userPwdFormat) +"");
                          if (userPwd.getText().toString().matches(userPwdFormat)){
                              ContentValues cv = new ContentValues();
                              cv.put(USERID, userName.getText().toString());
                              cv.put(userPwd, userPwd.getText().toString());
                              sqlDB.insertOrThrow(TABLE_NAME,null,cv);
                              Intent i = new Intent(getApplicationContext(),LoginActivity.class);
                              startActivity(i);
                              
                              Toast.makeText(getApplicationContext(),"注册成功,请登录",Toast.LENGTH_SHORT).show();
                              finish();
                          } else {
                             Toast.makeText(getApplicationContext(),"请输入6-18位密码,可包含数字,字母下划线",Toast.LENGTH_SHORT).show();
                          }
                       } else {
                           //Toast.makeText(getApplicationContext(),id.getText().toString() +"   " + userPwd.getText().toString() +"  "+ repeat.getText().toString(),Toast.LENGTH_SHORT).show();
                           Toast.makeText(getApplicationContext(),"两次输入的密码不一致 ",Toast.LENGTH_SHORT).show();
                       }
                   } else {
                      Toast.makeText(getApplicationContext(),"请输入5-18位字母开头用户名,可包括数字,字母下划线",Toast.LENGTH_SHORT).show();
                   }

               }else if (isNameExist){
                   Toast.makeText(getApplicationContext(),"账户已存在,请返回登录 ",Toast.LENGTH_SHORT).show();
               }
               else {
                   Toast.makeText(getApplicationContext(),"输入不能为空",Toast.LENGTH_SHORT).show();
                 //  Toast.makeText(getApplicationContext(),id.getText().toString() +"   " + userPwd.getText().toString() +"  "+ repeat.getText().toString(),Toast.LENGTH_SHORT).show();
               }

           }*/
       });
      
       login.setOnClickListener(new Button.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent(getApplicationContext(),LoginActivity.class);
                startActivity(i);
                finish();
            }
        });


    }
    private boolean isUserNameAndPwdValid() {
       
       //showToast(userName.getText().toString().trim());
      if (userName.getText().toString().trim().equals("")) {
         showToast(getString(R.string.account_empty));
            return false;
        } else if (userPwd.getText().toString().trim().equals("")) {
           showToast(getString(R.string.pwd_empty));

            return false;
        }else if(repeat.getText().toString().trim().equals("")) {
           showToast(getString(R.string.pwd_check_empty));

            return false;
        }
        return true;
   }
    public void showToast(final String msg) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                Toast.makeText(RegisterActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    }

    /**
     * 监听回退键
     */
    @Override
    public void onBackPressed() {

            finish();

    }
}

3,数据库管理

采用SQLite ,以及sharePrefermance “

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.v(TAG,"db.getVersion()="+db.getVersion());
            db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME + ";");
            db.execSQL(DB_CREATE);
            Log.v(TAG, "db.execSQL(DB_CREATE)");
            Log.e(TAG, DB_CREATE);
        }
 
        @Override
        public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
            Log.v(TAG, "DataBaseManagementHelper onUpgrade");
            onCreate(db);
        }
    }
 
    public UserDataManager(Context context) {
        mContext = context;
        Log.v(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.v(TAG,"findUserByName , userName="+userName);
        int result=0;
        Cursor cur = mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"=?",
        		new String[] { userName },null, null, null);
		while (cur.moveToNext()) {
			String user = cur.getString(1);
			Log.v("db_query", user);
			if (user.equals(userName)) {
				cur.close();
				return 1;
			} else
				cur.close();
				return 0;
		}
            Log.v(TAG,"findUserByName , result="+result);
        return result;
    }
    //根据用户名和密码找用户,用于登录
    public int findUserByNameAndPwd(String userName, String pwd){
        Log.v(TAG,"findUserByNameAndPwd");
        int result=0;
        Cursor cur = mSQLiteDatabase.query(TABLE_NAME, null, USER_NAME+"=?",
        		new String[] { userName },null, null, null);
		while (cur.moveToNext()) {
			String user = cur.getString(2);
			Log.v("db_query", user);
			if (pwd.equals(user)) {
				cur.close();
				return 1;
			} else
			{
				cur.close();
				return 0;
			}
		}
        return result;
    }

最后的效果gif 图如下:

其他资源文件等在下面的demo里,我就不贴出来了。欢迎下载

https://download.csdn.net/download/linzihahaha/10763892

ps:这个是我根据网上资源自己修改的,数据库有分开dataManager 和userData,这样方便管理,侵删。

猜你喜欢

转载自blog.csdn.net/linzihahaha/article/details/81566788