【Android】用户登录注册界面开发及用户信息管理案例代码详解

您所在的位置:网站首页 安卓微信界面代码大全 【Android】用户登录注册界面开发及用户信息管理案例代码详解

【Android】用户登录注册界面开发及用户信息管理案例代码详解

2024-07-17 06:09| 来源: 网络整理| 查看: 265

From: http://www.infocool.net/kb/Android/201608/171986.html

Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。后来逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机等。  

Andriod文档手册  

用户登录注册界面开发及用户信息管理案例详解

       刚开始接触Android编程,这算是我写的第一个简单工程,主要功能有:用户登录、注册、注销、修改密码、记住密码共5个基本操作,其内容涉及到以下几点:

       1:Button,TextView,TextEdit,ImageView,RatioButton等基本控件的使用;

       2:多个Activities之间的切换;

       3:使用Android本地数据库来管理用户信息。

       实现上述功能的主要参考资料:CSDN博客之星郭霖大牛写的《第一行代码—Android》,个人比较喜欢看纸质的资料,所以买了这本书,大牛的博客主页链接http://my.infocool.net/sinyu890807。其次是参考了网上的一个用户登录注册的程序,在此基础上按照自己的需求慢慢添加完善一些功能,并且将原来的单个avtivity换用多个activity实现,UI设计也更加漂亮美观。

        先上几个图【我在android6.0.1的真机上调试的】:

        下面是用户登录和用户注册界面。

       

       下面是用户密码修改和个人中心界面。

       

一、工程代码         整个工程是在Android Studio 2.1.1环境下实现的,源码下载链接在末尾给出,下面是工程目录:                   这里先贴出各个布局文件.xml,各个类内容和各个activity代码: 1:几个界面布局文件.xml         login.xml【登录界面】         register.xml【注册界面】         resetpwd.xml【修改密码界面】         user.xml【个人中心】 2:用户数据管理的类        UserData.java 【用户数据】 package com.example.foolishfan.user_v10; public class UserData { private String userName; //用户名 private String userPwd; //用户密码 private int userId; //用户ID号 public int pwdresetFlag=0; //获取用户名 public String getUserName() { //获取用户名 return userName; } //设置用户名 public void setUserName(String userName) { //输入用户名 this.userName = userName; } //获取用户密码 public String getUserPwd() { //获取用户密码 return userPwd; } //设置用户密码 public void setUserPwd(String userPwd) { //输入用户密码 this.userPwd = userPwd; } //获取用户id public int getUserId() { //获取用户ID号 return userId; } //设置用户id public void setUserId(int userId) { //设置用户ID号 this.userId = userId; } public UserData(String userName, String userPwd) { //这里只采用用户名和密码 super(); this.userName = userName; this.userPwd = userPwd; } }        UserDataManager.java【用户管理】 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】 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();//注销成功提示 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】 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; } }         Resetpwd.java【重新设置密码】 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.RelativeLayout; import android.widget.Toast; public class Resetpwd extends AppCompatActivity { private EditText mAccount; //用户名编辑 private EditText mPwd_old; //密码编辑 private EditText mPwd_new; //密码编辑 private EditText mPwdCheck; //密码编辑 private Button mSureButton; //确定按钮 private Button mCancelButton; //取消按钮 private UserDataManager mUserDataManager; //用户数据管理类 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.resetpwd); mAccount = (EditText) findViewById(R.id.resetpwd_edit_name); mPwd_old = (EditText) findViewById(R.id.resetpwd_edit_pwd_old); mPwd_new = (EditText) findViewById(R.id.resetpwd_edit_pwd_new); mPwdCheck = (EditText) findViewById(R.id.resetpwd_edit_pwd_check); mSureButton = (Button) findViewById(R.id.resetpwd_btn_sure); mCancelButton = (Button) findViewById(R.id.resetpwd_btn_cancel); mSureButton.setOnClickListener(m_resetpwd_Listener); //注册界面两个按钮的监听事件 mCancelButton.setOnClickListener(m_resetpwd_Listener); if (mUserDataManager == null) { mUserDataManager = new UserDataManager(this); mUserDataManager.openDataBase(); //建立本地数据库 } } View.OnClickListener m_resetpwd_Listener = new View.OnClickListener() { //不同按钮按下的监听事件选择 public void onClick(View v) { switch (v.getId()) { case R.id.resetpwd_btn_sure: //确认按钮的监听事件 resetpwd_check(); break; case R.id.resetpwd_btn_cancel: //取消按钮的监听事件,由注册界面返回登录界面 Intent intent_Resetpwd_to_Login = new Intent(Resetpwd.this,Login.class) ; //切换Resetpwd Activity至Login Activity startActivity(intent_Resetpwd_to_Login); finish(); break; } } }; public void resetpwd_check() { //确认按钮的监听事件 if (isUserNameAndPwdValid()) { String userName = mAccount.getText().toString().trim(); String userPwd_old = mPwd_old.getText().toString().trim(); String userPwd_new = mPwd_new.getText().toString().trim(); String userPwdCheck = mPwdCheck.getText().toString().trim(); int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd_old); if(result==1){ //返回1说明用户名和密码均正确,继续后续操作 if(userPwd_new.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_new); mUserDataManager.openDataBase(); boolean flag = mUserDataManager.updateUserData(mUser); if (flag == false) { Toast.makeText(this, getString(R.string.resetpwd_fail),Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, getString(R.string.resetpwd_success),Toast.LENGTH_SHORT).show(); mUser.pwdresetFlag=1; Intent intent_Register_to_Login = new Intent(Resetpwd.this,Login.class) ; //切换User Activity至Login Activity startActivity(intent_Register_to_Login); finish(); } } }else if(result==0){ //返回0说明用户名和密码不匹配,重新输入 Toast.makeText(this, getString(R.string.pwd_not_fit_user),Toast.LENGTH_SHORT).show(); return; } } } public boolean isUserNameAndPwdValid() { String userName = mAccount.getText().toString().trim(); //检查用户是否存在 int count=mUserDataManager.findUserByName(userName); //用户不存在时返回,给出提示文字 if(count0){ 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) ; startActivity(intent_Register_to_Login); finish(); } } } }

3:修改密码功能

      在登录界面点击“修改密码”即可进入对应的Resetpwd的Activity,实现用户密码的修改,核心函数:

public void resetpwd_check() { //确认按钮的监听事件 if (isUserNameAndPwdValid()) { String userName = mAccount.getText().toString().trim(); String userPwd_old = mPwd_old.getText().toString().trim(); String userPwd_new = mPwd_new.getText().toString().trim(); String userPwdCheck = mPwdCheck.getText().toString().trim(); int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd_old); if(result==1){ //返回1说明用户名和密码均正确,继续后续操作 if(userPwd_new.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_new); mUserDataManager.openDataBase(); boolean flag = mUserDataManager.updateUserData(mUser); if (flag == false) { Toast.makeText(this, getString(R.string.resetpwd_fail),Toast.LENGTH_SHORT).show(); }else{ Toast.makeText(this, getString(R.string.resetpwd_success),Toast.LENGTH_SHORT).show(); mUser.pwdresetFlag=1; Intent intent_Register_to_Login = new Intent(Resetpwd.this,Login.class) ; startActivity(intent_Register_to_Login); finish(); } } }else if(result==0){ //返回0说明用户名和密码不匹配,重新输入 Toast.makeText(this, getString(R.string.pwd_not_fit_user),Toast.LENGTH_SHORT).show(); return; } } }

4:注销功能

       注销功能直接在登录界面,当用户名和密码均正确时,点击注销按钮将直接注销用户【各位可根据需求将注销放在个人中心里面进行操作】。核心函数:

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();//登录成功提示 mPwd.setText(""); mAccount.setText(""); mUserDataManager.deleteUserDatabyname(userName); }else if(result==0){ Toast.makeText(this, getString(R.string.cancel_fail),Toast.LENGTH_SHORT).show(); //登录失败提示 } } }

5:记住密码

       当记住密码的RadioButton为真时,系统将记住此时用户登录的信息,用户在下次登录时可避免再次输入用户名和密码的麻烦,实现细节在Login的Activity中。这里给一个大牛用SharedPreferences做的记住密码连接:这里 

三、工程源码下载                 初学不久,工程代码中可能存在一些bug,望各位不吝指出,有个bug测试出来了,就是在记住密码之后对该账户进行密码修改后返回登录界面,此时记住的密码为原来的密码,不可登陆,我相信这个小bug是难不到你们的,^_^。         例程源码User_V2.0 转载请注明本文出处: http://www.infocool.net/kb/Android/201608/171986.html


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3