话不多说,今天介绍的是登陆功能模块。

以下图片是我项目中的登陆界面:

android项目案例5- 基于Android studio的android用户登陆_第1张图片

接下来进入正题——————》》》》》

1.首先设置UI界面布局。XML文件

<?xml version="1.0" encoding="utf-8"?>                                             

2.Activity的实现。java文件

package com.CWT.navigation.Personal_center;import android.content.Intent;import android.content.SharedPreferences;import android.content.pm.ActivityInfo;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import android.support.v4.app.FragmentTransaction;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import android.widget.Toast;import com.CWT.navigation.MainActivity;import com.CWT.navigation.R;import com.CWT.navigation.fragment.TabMeFragment;public class login extends AppCompatActivity {    private String userName,psw,spPsw;//获取的用户名,密码,加密密码    private EditText et_user_name,et_psw;//编辑框    @Override    protected void onCreate(Bundle savedInstanceState){        super.onCreate(savedInstanceState);        setContentView(R.layout.login);        //设置此界面为竖屏        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);        init();    }    //获取界面控件    private void init() {        //从main_title_bar中获取的id        //从activity_login.xml中获取的        TextView tv_register = (TextView) findViewById(R.id.tv_register);        TextView tv_find_psw = (TextView) findViewById(R.id.tv_find_psw);        Button btn_login = (Button) findViewById(R.id.btn_login);        et_user_name= (EditText) findViewById(R.id.et_user_name);        et_psw= (EditText) findViewById(R.id.et_psw);        //立即注册控件的点击事件        tv_register.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //为了跳转到注册界面,并实现注册功能                Intent intent=new Intent(login.this,Register.class);                startActivityForResult(intent, 1);            }        });        //找回密码控件的点击事件        tv_find_psw.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                startActivity(new Intent(login.this,LostFind.class));            }        });        //  登录按钮的点击事件        btn_login.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                //开始登录,获取用户名和密码 getText().toString().trim();                userName = et_user_name.getText().toString().trim();                psw = et_psw.getText().toString().trim();                //对当前用户输入的密码进行MD5加密再进行比对判断, MD5Utils.md5( ); psw 进行加密判断是否一致                String md5Psw = MD5Utils.md5(psw);                // md5Psw ; spPsw 为 根据从SharedPreferences中用户名读取密码                // 定义方法 readPsw为了读取用户名,得到密码                spPsw = readPsw(userName);                // TextUtils.isEmpty                if (TextUtils.isEmpty(userName)) {                    Toast.makeText(login.this, "请输入用户名", Toast.LENGTH_SHORT).show();                } else if (TextUtils.isEmpty(psw)) {                    Toast.makeText(login.this, "请输入密码", Toast.LENGTH_SHORT).show();                    // md5Psw.equals(); 判断,输入的密码加密后,是否与保存在SharedPreferences中一致                } else if (md5Psw.equals(spPsw)) {                    //一致登录成功                    Toast.makeText(login.this, "登录成功", Toast.LENGTH_SHORT).show();                    //保存登录状态,在界面保存登录的用户名 定义个方法 saveLoginStatus boolean 状态 , userName 用户名;                    saveLoginStatus(true, userName);                    //登录成功后关闭此页面进入主页                    Intent data = new Intent();                    //datad.putExtra( ); name , value ;                    data.putExtra("isLogin", true);                    //RESULT_OK为Activity系统常量,状态码为-1                    // 表示此页面下的内容操作成功将data返回到上一页面,如果是用back返回过去的则不存在用setResult传递data值                    setResult(RESULT_OK, data);                    //销毁登录界面                    login.this.finish();                    //跳转到主界面,登录成功的状态传递到 TabMeFragemt 中                    Toast.makeText(login.this, userName+"已登陆", Toast.LENGTH_SHORT).show();                } else if ((spPsw != null && !TextUtils.isEmpty(spPsw) && !md5Psw.equals(spPsw))) {                    Toast.makeText(login.this, "输入的用户名和密码不一致", Toast.LENGTH_SHORT).show();                } else {                    Toast.makeText(login.this, "此用户名不存在", Toast.LENGTH_SHORT).show();                }            }        });    }    /**     * login     * @param f     */    private void switchFragment(Fragment f) {        FragmentManager fragmentM = getSupportFragmentManager();//管理对象        FragmentTransaction trans = fragmentM.beginTransaction();//切换碎片        trans.replace(R.id.login, f);        trans.commit();    }    /**     *从SharedPreferences中根据用户名读取密码     */    private String readPsw(String userName){        //getSharedPreferences("loginInfo",MODE_PRIVATE);        //"loginInfo",mode_private; MODE_PRIVATE表示可以继续写入        SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);        //sp.getString() userName, "";        return sp.getString(userName , "");    }    /**     *保存登录状态和登录用户名到SharedPreferences中     */    private void saveLoginStatus(boolean status,String userName){        //loginInfo表示文件名  SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);        SharedPreferences sp=getSharedPreferences("loginInfo", MODE_PRIVATE);        //获取编辑器        SharedPreferences.Editor editor=sp.edit();        //存入boolean类型的登录状态        editor.putBoolean("isLogin", status);        //存入登录状态时的用户名        editor.putString("loginUserName", userName);        //提交修改        editor.apply();    }    /**     * 注册成功的数据返回至此     * @param requestCode 请求码     * @param resultCode 结果码     * @param data 数据     */    @Override    //显示数据, onActivityResult    //startActivityForResult(intent, 1); 从注册界面中获取数据    //int requestCode , int resultCode , Intent data    // LoginActivity -> startActivityForResult -> onActivityResult();    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        //super.onActivityResult(requestCode, resultCode, data);        super.onActivityResult(requestCode, resultCode, data);        if(data!=null){            //是获取注册界面回传过来的用户名            // getExtra().getString("***");            String userName=data.getStringExtra("userName");            if(!TextUtils.isEmpty(userName)){                //设置用户名到 et_user_name 控件                et_user_name.setText(userName);                //et_user_name控件的setSelection()方法来设置光标位置                et_user_name.setSelection(userName.length());            }        }    }}

代码实现中,基本上都有代码注解,我就不再解释了。

请各位大神指教,本博文内容可能写的有错误,有读者发现错误,可以留言我,希望本博文能够帮到大家

 

 

 

 

 

更多相关文章

  1. android xml界面布局常用属性概括
  2. android studio 新建项目 界面一直停在 【“building ‘ 项目名
  3. Android输入法遮挡了输入框,使用android:fitsSystemWindows="true
  4. android开发之设置Edittext密码的方法
  5. android 动态壁纸 3 解决 动态壁纸列表界面icon问题
  6. 【摘录】从Android界面开发谈起
  7. Android用户界面 UI组件--TextView及其子类(一) TextView

随机推荐

  1. android Adapter综合介绍
  2. versionCode与versionName的区别、应用、
  3. Google Android应用开发04 Android应用程
  4. Android开发资源完全汇总
  5. IDA Pro 远程调试Android进程环境配置
  6. Android(安卓)Studio中Xml的新建及shape
  7. android activity 生命周期
  8. 在Android中查看和管理sqlite数据库
  9. Android(安卓)WIFI 学习整理+搜索到资料
  10. Android(安卓)ADB的使用