智能管家

编程入门 行业动态 更新时间:2024-10-11 01:16:28

智能<a href=https://www.elefans.com/category/jswz/34/1769965.html style=管家"/>

智能管家

接下来实现用户登录功能,图解简要过程如下:

用户登录功能和用户注册功能实现过程大同小异,都是点击按钮以后获取用户输入的值,判断是否为空,如果不为空就存入user中,实现登录过程。

记住密码则是需要将用户输入的用户名密码存入数据库中,通过前面封装的SharedPreferences的各种put,get操作实现

  • 获取用户名和密码,实现登录操作
  • 初始化控件

  • 如果用户没有注册就先注册,跳转到注册页面,注册功能已经实现
  • 登录过程
  • 记住密码,如果用户输入信息之后退出,那么下次登录的时候是否再次输入信息取决于先前用户是否记住密码。如果没有记住密码则销毁先前输入的内容,否则就通过putString方法存入信息,在下次登录的时候,通过getString方法获取用户名和密码

  • 当再次登录的时候,获取用户是否记住密码(putBoolean中通过key获取),如果为true,则说明记住密码,那么就可以通过name和pass的key来获取存入的用户名和密码,并且设置text,下次登录的时候就会显示

  • 登录界面

  • xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"android:gravity="center"android:padding="10dp"><ImageView
        android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@mipmap/ic_launcher"/><EditText
        android:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:hint="用户名"android:id="@+id/lo_name"/><EditText
        android:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/lo_password"android:hint="密码"/><CheckBox
        android:layout_marginTop="10dp"android:layout_marginLeft="126dp"android:text="记住密码"android:textColor="@color/colorAccent"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/keep_pass"/><Button
        android:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@drawable/button_bg"android:text="登录"android:textColor="#ffffff"android:id="@+id/lo_login"/><Button
        android:textColor="#ffffff"android:layout_marginTop="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:id="@+id/lo_registered"android:background="@drawable/button_bg"android:text="注册"/><TextView
        android:layout_marginTop="10dp"android:layout_marginLeft="135dp"android:text="忘记密码?"android:textColor="@color/colorAccent"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/forget_pass"/></LinearLayout>
  • LoginActivity的源代码:
public class LoginActivity extends AppCompatActivity implements View.OnClickListener {private EditText et_name;private EditText et_pass;private Button btn_login;private Button btn_registerd;private CheckBox keep_pass;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_login);initView();}private void initView() {et_name=(EditText)findViewById(R.id.lo_name);et_pass=(EditText)findViewById(R.id.lo_password);btn_login=(Button)findViewById(R.id.lo_login);btn_login.setOnClickListener(this);btn_registerd=(Button)findViewById(R.id.lo_registered);btn_registerd.setOnClickListener(this);keep_pass=(CheckBox)findViewById(R.id.keep_pass);boolean isKeep=ShareUtils.getBoolean(this,"keeppass",false);//默认为falsekeep_pass.setChecked(isKeep);//true说明记住密码,则将用户名密码显示出来if(isKeep){String name=ShareUtils.getString(this,"username","");String password=ShareUtils.getString(this,"password","");et_name.setText(name);et_pass.setText(password);}}@Overridepublic void onClick(View v) {switch (v.getId()){case R.id.lo_registered:startActivity(new Intent(this,RegisteredActivity.class));break;case R.id.lo_login:String name=et_name.getText().toString().trim();String password=et_pass.getText().toString().trim();if(!TextUtils.isEmpty(name)&&!TextUtils.isEmpty(password)){MyUSer myUSer=new MyUSer();myUSer.setUsername(name);myUSer.setPassword(password);myUSer.login(new SaveListener<MyUSer>() {@Overridepublic void done(MyUSer myUSer, BmobException e) {if(e==null){Toast.makeText(LoginActivity.this, "登录成功!", Toast.LENGTH_SHORT).show();startActivity(new Intent(LoginActivity.this, MainActivity.class));finish();}else{Toast.makeText(LoginActivity.this, "登录失败!", Toast.LENGTH_SHORT).show();}}});}}}//如果输入用户名密码后退出,看是否有记住密码@Overrideprotected void onDestroy() {super.onDestroy();//保存当前是否点击的状态ShareUtils.putBoolean(this,"keeppass",keep_pass.isChecked());//如果选中则保存当前用户名密码if(keep_pass.isChecked()){ShareUtils.putString(this,"username",et_name.getText().toString().trim());ShareUtils.putString(this,"password",et_pass.getText().toString().trim());}else{//存入空
//            ShareUtils.putString(this,"username","");
//            ShareUtils.putString(this,"password","");//应该删除ShareUtils.delete(this,"username");ShareUtils.delete(this,"password");}}
}

更多推荐

智能管家

本文发布于:2024-02-11 21:24:31,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1683589.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:管家   智能

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!