淘宝界面实现以及登录注册界面

Android小白,实现本次项目,参照了很多大佬的代码。其中有些不足的地方请指点交流。
一、项目实现内容:
1.实现登录页面:
1.1 注册用户
1.2 登录用户
1.3 注销用户
1.4 更改密码
2.淘宝界面:
登录之后淘宝界面视频:
视频
二、运行结果与代码实现:
《数据库文件请看Dome》
1.进入app
1.1布局设计:
这里写图片描述
布局文件名:activity_main.xml
1.2 MainActivity.java内容:

1.找到自己需要的使用的按钮:
   Button but_login = (Button) findViewById(R.id.M_but1);
   Button but_register = (Button) findViewById(R.id.M_but2); 
   2.注册按钮点击事件:
 `             but_login.setOnClickListener(mListener);
               but_register.setOnClickListener(mListener);`

3.使用switch语句getId()方法进行控件配对:

public void onClick(View v) {
                                          switch (v.getId()) {
                                          case R.id.M_but1:
                 Intent intent_login = new Intent(MainActivity.this,UserLogin.class);
                                                          startActivity(intent_login);
                 finish();
                 break;
         case R.id.M_but2:
                register();
                break;
                                          }
                            }

4.使用Intent意图实现页面跳转:

//跳转至登录界面:
Intent intent_login = new Intent(MainActivity.this,UserLogin.class);
                                                          startActivity(intent_login);
                                                          finish();
 //跳转至注册界面:
Intent intent_login = new Intent(MainActivity.this,UserRegster.class);
                                                          startActivity(intent_login);
                                                          finish();

注意事项:使用intent实现页面跳转需要在AndroidManifest.xml文件里面注册,
如下:

<activity
            android:name="com.example.tangbeibei.UserLogin"
            android:label="登陆界面" >
        </activity>
        <activity
            android:name="com.example.tangbeibei.UserRegister"
            android:label="注册页面">
        </activity>

2.登入页面:

这里写图片描述

2.1布局设计:

布局文件名:u_login.xml
2.2 UserLogin.java内容:
1.点击记住密码

使用SharedPreferences存储并记住密码
private SharedPreferences login_sp;

  private UserDataManager mUserDataManager;
      获取用户账户与密码
       String name = login_sp.getString("USER_NAME","");
                            String pwd = login_sp.getString("PASSWORD", "");
     设置没有勾选为false用于if语句判断
                            boolean choseRemember = login_sp.getBoolean("mRememberCheck", false);
if (choseRemember) {
                                          edit_name.setText(name);
                                          edit_pwd.setText(pwd);
                                          che_autlogin.setChecked(true);
                            }
调用数据库UserManager.java的中的findUserByNameAndPwd方法,获取数据库中的信息。
int result = mUserDataManager.findUserByNameAndPwd(userName,
                                                                      userPwd);
                            //判断是否勾选了记住密码选项:                           
if (che_autpwd.isChecked()) {
                                                                      editor.putBoolean("mRememberCheck", true);
                                                        } else {
                                                                      editor.putBoolean("mRememberCheck", false);
                                                        }

2.登录成功的实现:
2.1判断改用户是否输入账户与密码:
定义一个isUserNameAndPwdValid()的方法,使用getText获取用户输入的信息,并使用equals进行判断。使用Toast输入提示信息。Trim()的作用是去空格。

private boolean isUserNameAndPwdValid() {
                            if (edit_name.getText().toString().trim().equals("")) {
                                          Toast.makeText(this, "请输入账号", Toast.LENGTH_SHORT).show();
                                          return false;
                            } else if (edit_pwd.getText().toString().trim().equals("")) {
                                          Toast.makeText(this, "请输入密码", Toast.LENGTH_SHORT).show();
                                          return false;
                            }
                            return true;
              }

2.1配对数据库中的账户与密码:
使用findUserByNameAndPwd获数据库中的账号密码,使用if语句判断。

 int result = mUserDataManager.findUserByNameAndPwd(userName,
                                                                      userPwd);
                                          if (result == 1) { // 返回1说明用户名和密码均正确
                                                        // 保存用户名和密码
                                                        editor.putString("USER_NAME", userName);
                                                        editor.putString("PASSWORD", userPwd);

                                                        // 是否记住密码
                                                        if (che_autpwd.isChecked()) {
                                                                      editor.putBoolean("mRememberCheck", true);
                                                        } else {
                                                                      editor.putBoolean("mRememberCheck", false);
                                                        }
                                                        editor.commit();
                                                        // 登录成功跳转至UserSucLogin页面
                                                        Intent intent = new Intent(UserLogin.this, UserSucLogin.class);
                                                        startActivity(intent);
                                                        finish();
                                                        Toast.makeText(this, "登录成功", Toast.LENGTH_SHORT).show();// 登录成功提示
                                          } else if (result == 0) {
                                                        Toast.makeText(this, "登录失败", Toast.LENGTH_SHORT).show(); // 登录失败提示
                                          }
                            }
              }

2.3 连接数据库:

 //打开数据库
              @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();
              }

2.1注销账户:
首先调用isUserNameAndPwdValid()方法对账户秘密进行判断。正确后,获取账号与密码,使用setText(””);将账户用于密码设置为空字串。从而实现注销密码。

public void cancel() { // 注销
                            if (isUserNameAndPwdValid()) {
                                          String userName = edit_name.getText().toString().trim(); // 获取当前输入的用户名和密码信息
                                          String userPwd = edit_pwd.getText().toString().trim();
                                          int result = mUserDataManager.findUserByNameAndPwd(userName,
                                                                      userPwd);
                                          if (result == 1) { // 返回1说明用户名和密码均正确
                                                        Toast.makeText(this, "注销成功", Toast.LENGTH_SHORT).show();
                                                        edit_name.setText("");
                                                        edit_pwd.setText("");
                                                        mUserDataManager.deleteUserDatabyname(userName);
                                          } else if (result == 0) {
                                                        Toast.makeText(this, "注销失败", Toast.LENGTH_SHORT).show(); // 注销失败提示
                                          }
                            }

              }

3.注册页面:
这里写图片描述
3.1布局设计:

布局文件:UserRegister.xml
3.2 UsesrRegister.java

 1.创建本地数据库
if (mUserDataManager == null) {
                                          mUserDataManager = new UserDataManager(this);
                                          // 创建本地数据库
                                          mUserDataManager.openDataBase();
                            }
              }
  2.打开数据库,进行用户存储
UserDatabase mUser = new UserDatabase(userName, userPwd); 
                                            mUserDataManager.openDataBase(); 
long flag = mUserDataManager.insertUserData(mUser);

4.更新密码页面:
这里写图片描述
4.1页面设计:

布局文件:u_upudata.xml
4.2 UserUpdatPwd.java内容
注释写的很详细:

 public class UserUpdatePwd extends Activity {
              private EditText mName;
              private EditText mPwd_new;
              private EditText mPwd_old;
              private EditText mCheckPwd;
              private Button but_determine;
              private Button but_Off;
              private UserDataManager mUserDataManager;

              @Override
              protected void onCreate(Bundle savedInstanceState) {
                            super.onCreate(savedInstanceState);
                            setContentView(R.layout.u_upadate);
                            mName = (EditText) findViewById(R.id.Up_edit1);
                            mPwd_new = (EditText) findViewById(R.id.Up_edit3);
                            mPwd_old = (EditText) findViewById(R.id.Up_edit2);
                            mCheckPwd = (EditText) findViewById(R.id.Up_edit4);
                            but_determine = (Button) findViewById(R.id.Up_but1);
                            but_Off = (Button) findViewById(R.id.Up_but2);
                            but_determine.setOnClickListener(m_resetpwd_Listener); // 注册界面两个按钮的监听事件
                            but_Off.setOnClickListener(m_resetpwd_Listener);
                            if (mUserDataManager == null) {
                                          mUserDataManager = new UserDataManager(this);
                                          mUserDataManager.openDataBase(); // 建立本地数据库
                            }
              }

              OnClickListener m_resetpwd_Listener = new OnClickListener() {

                            @Override
                            public void onClick(View v) {
                                          switch (v.getId()) {
                                          case R.id.Up_but1: // 确认按钮的监听事件
                                                        resetpwd_check();
                                                        break;
                                          case R.id.Up_but2: // 取消按钮的监听事件,由注册界面返回登录界面
                                                        Intent intent_Resetpwd_to_Login = new Intent(
                                                                                    UserUpdatePwd.this, UserLogin.class); // 切换Resetpwd
                                                                                                                                                                                                                                // Activity至Login
                                                                                                                                                                                                                                // Activity
                                                        startActivity(intent_Resetpwd_to_Login);
                                                        finish();
                                                        break;
                                          }
                            }
              };

              private void resetpwd_check() {
                            if (isUserNameAndPwdValid()) { 
                          String userName = mName.getText().toString().trim(); 
                          String userPwd_old = mPwd_old.getText().toString().trim(); 
                          String userPwd_new = mPwd_new.getText().toString().trim(); 
                          String userPwdCheck = mCheckPwd.getText().toString().trim(); 
                          int result=mUserDataManager.findUserByNameAndPwd(userName, userPwd_old); 
                          if(result==1){                                             //返回1说明用户名和密码均正确,继续后续操作 
                              if(userPwd_new.equals(userPwdCheck)==false){           //两次密码输入不一样 
                                  Toast.makeText(this, "",Toast.LENGTH_SHORT).show(); 
                                  return ; 
                              } else { 
                                  UserDatabase mUser = new UserDatabase(userName, userPwd_new); 
                                  mUserDataManager.openDataBase(); 
                                  boolean flag = mUserDataManager.updateUserData(mUser); 
                                  if (flag == false) { 
                                      Toast.makeText(this, "更改密码成功",Toast.LENGTH_SHORT).show(); 
                                  }else{ 
                                      Toast.makeText(this, "更改密码失败",Toast.LENGTH_SHORT).show(); 
                                      mUser.pwdresetFlag=1; 
                                      Intent intent_Register_to_Login = new Intent(UserUpdatePwd.this,UserLogin.class) ;    //切换User Activity至Login Activity 
                                      startActivity(intent_Register_to_Login); 
                                      finish(); 
                                  } 
                              } 
                          }else if(result==0){                                       //返回0说明用户名和密码不匹配,重新输入 
                              Toast.makeText(this, "用户名和密码不匹配,重新输入",Toast.LENGTH_SHORT).show(); 
                              return; 
                          } 
                      } 
                  } 
              public boolean isUserNameAndPwdValid() { 
        String userName = mName.getText().toString().trim(); 
        //检查用户是否存在 
        int count=mUserDataManager.findUserByName(userName); 
        //用户不存在时返回,给出提示文字 
        if(count<=0){ 
            Toast.makeText(this,"此用户不存在",Toast.LENGTH_SHORT).show(); 
            return false; 
        } 
        if (mName.getText().toString().trim().equals("")) { 
            Toast.makeText(this, "请输入账号",Toast.LENGTH_SHORT).show(); 
            return false; 
        } else if (mPwd_old.getText().toString().trim().equals("")) { 
            Toast.makeText(this, "请输入旧密码",Toast.LENGTH_SHORT).show(); 
            return false; 
        } else if (mPwd_new.getText().toString().trim().equals("")) { 
            Toast.makeText(this, "请输入新密码",Toast.LENGTH_SHORT).show(); 
            return false; 
        }else if(mCheckPwd.getText().toString().trim().equals("")) { 
            Toast.makeText(this, "请再次确认密码",Toast.LENGTH_SHORT).show(); 
            return false; 
        } 
        return true; 
    } 
} 

6.登录成功界面
布局设计:

这里写图片描述

源代码下载

猜你喜欢

转载自blog.csdn.net/My_CODEart/article/details/79174754