欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android中使用SharedPreferences完成记住账号密码的功能

程序员文章站 2023-12-09 14:59:33
效果图: 记住密码后,再次登录就会出现账号密码,否则没有。 分析: sharedpreferences可将数据存储到本地的配置文件中 sharedprefe...

效果图:

Android中使用SharedPreferences完成记住账号密码的功能Android中使用SharedPreferences完成记住账号密码的功能

记住密码后,再次登录就会出现账号密码,否则没有。

分析:

sharedpreferences可将数据存储到本地的配置文件中

sharedpreferences会记录checkbox的状态,如果checkbox被选,则将配置文件中记录的账号密码信息回馈给账号密码控件,否则清空。

sharedpreferences使用方法:

1、创建名为config的配置文件,并且私有

private sharedpreferences config;
config=getsharedpreferences("config", mode_private);

2、添加编辑器

editor edit=config.edit();

3、向内存中写入数据

string username=et_username.gettext().tostring();
string password=et_password.gettext().tostring();
edit.putstring("username", username).putstring("password", password);

4、提交到本地

edit.commit(); 

代码:

fry.activity01

package fry;
import com.example.rememberuserandpassword.r;
import android.app.activity;
import android.content.sharedpreferences;
import android.content.sharedpreferences.editor;
import android.os.bundle;
import android.view.view;
import android.widget.button;
import android.widget.checkbox;
import android.widget.textview;
import android.widget.toast;
public class activity01 extends activity{
  private button btn_login;
  private textview et_username;
  private textview et_password;
  private checkbox cb_choose;
  private sharedpreferences config;
  @override
  protected void oncreate(bundle savedinstancestate) {
    // todo auto-generated method stub
    super.oncreate(savedinstancestate);
    setcontentview(r.layout.activity01);
    config=getsharedpreferences("config", mode_private);
    btn_login=(button) findviewbyid(r.id.btn_login);
    et_username=(textview) findviewbyid(r.id.et_username);
    et_password=(textview) findviewbyid(r.id.et_password);
    cb_choose=(checkbox) findviewbyid(r.id.cb_choose);
    //是否记住了密码,初始化为false
    boolean ischeck=config.getboolean("ischeck", false);
    //toast.maketext(this, ischeck+" ", toast.length_short).show();
    if(ischeck){
      et_username.settext(config.getstring("username", ""));
      et_password.settext(config.getstring("password", ""));
      cb_choose.setchecked(ischeck);
    }
  }
  //权限要是public,要不然访问不到
  //因为在button控件中设置了android:onclick="onclick"
  public void onclick(view view){
    toast.maketext(this, "登录成功", toast.length_short).show();
    editor edit=config.edit();
    string username=et_username.gettext().tostring();
    string password=et_password.gettext().tostring();
    boolean ischeck=cb_choose.ischecked();
    //toast.maketext(this, ischeck+" ", toast.length_short).show();
    //存储checkbox的状态
    edit.putboolean("ischeck", ischeck);
    if(ischeck){
      edit.putstring("username", username).putstring("password", password);
    }else{
      edit.remove("username").remove("password");
    }
    //提交到本地
    edit.commit();
  }
}

/记住账号和密码/res/layout/activity01.xml

<?xml version="1.0" encoding="utf-8"?>
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" >
  <edittext 
    android:id="@+id/et_username"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    />
  <edittext
    android:id="@+id/et_password"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:ems="10" >
    <requestfocus />
  </edittext>
  <linearlayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    >
    <checkbox 
        android:id="@+id/cb_choose"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      />
    <textview 
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:text="记住密码"
      />
  </linearlayout>
  <!-- android:onclick="onclick" 点击时去class中调用onclick方法,权限要为public -->
  <button
    android:id="@+id/btn_login"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="登录"
    android:layout_gravity="center_horizontal"
    android:onclick="onclick"
    />
</linearlayout>

总结

以上所述是小编给大家介绍的android中使用sharedpreferences完成记住账号密码的功能,希望对大家有所帮助